-
Notifications
You must be signed in to change notification settings - Fork 1
/
moto_car_in_garage.py
50 lines (42 loc) · 1.48 KB
/
moto_car_in_garage.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env python3
from tabulate import tabulate
class solution:
def __init__(self,fuel_tanks,wheels):
self.f = fuel_tanks
self.w = wheels
self.l = []
def comb_wheel(self):
self.l = []
for i in range(0,self.w+1):
for j in range(0,self.w+1):
if 2*i+4*j==self.w:
tup = (i,j)
self.l.append(tup)
return self.l
def narrow_field (self):
lf = []
for eil in self.l:
n = sum(eil)
if n==self.f:
lf.append(eil)
return lf
wheels = 62 # 94 # 44 # 6 # 9 # 4 # 0
fuel_tanks= 16 # 35 # 12 # 3 # 2 # 1 # 10
s = solution(fuel_tanks,wheels)
lista = s.comb_wheel()
if lista == []:
print("With these input numbers there are no solutions")
else:
print(" -")
print(" Knowing that there are", wheels, "wheels in a garage, \n the possible combinations between cars and motorcycles are: \n")
print(tabulate(lista, headers=["Nr. Motorcycles","Nr. Cars"],tablefmt="presto"))
print("\n")
# Adding constraint
print(" -")
print(" Knowing that there are ",fuel_tanks, "fuel tanks ")
lista = s.narrow_field() # Here i reuse the same previous memory location, nothing changes for the purposes of the exercise.
if lista == []:
print(" with this number of fuel tanks there are no solutions")
else:
print(" the possible combinations between cars and motorcycles are: \n")
print(tabulate(lista, headers=["Nr. Motorcycles","Nr. Cars"],tablefmt="presto"))