Программа кассир
Суть программы: у нас есть касса, которая продает билеты в кино за 25$ и каждый человек покупает один билет и у него есть 25$/50$/100$ одной купюрой. Суть в том, что вводится список с количеством денег у всех покупателей в очереди и прога сама высчитывает хватит ли ей налички, чтобы со всеми расплатиться или нет.
Проблема в том, что почему-то крутиться бесконечный цикл.
def tickets(people):
text = "YES"
length = len (people)
i = 0
cash_count = {25 : 0, 50 : 0, 100 : 0}
while i < length and text == "YES":
banknote = people [i]
for key in cash_count.keys():
if banknote == key:
cash = cash_count [key]
cash_count [key] = cash + 1
if banknote == 25:
if cash_count [25] > 0:
cash = cash_count [25]
cash_count [25] = cash - 0
else:
text = "NO"
elif banknote == 50:
if cash_count [25] > 0:
cash = cash_count [25]
cash_count [25] = cash - 1
else:
text = "NO"
elif banknote == 100:
if cash_count [50] > 0 and cash_count [25] > 0:
cash = cash_count [50]
cash_count [50] = cash - 1
cash = cash_count [25]
cash_count [25] = cash - 1
elif cash_count [25] > 2:
cash = cash_count [25]
cash_count [25] = cash - 3
else:
text = "NO"
else:
print ("В массиве введенно неверное значение купюры.")
return count
Тестил вот, так:
print (tickets([25, 25, 50]), "YES")
print (tickets([25, 100]), "NO")
Ответы (1 шт):
Автор решения: Эникейщик
→ Ссылка
Ну как бы проблема очевидна. Ни i, ни length не изменяют своего значения, поэтому программа все время работает с элементом people [0], не переходя к следующим.