Поиск изменений для ряда

#python

Вопрос:

Я новичок, и мне дали проект. То, что я записал прямо сейчас, работает для каждого числа, кроме того, которое мне нужно, 83, где написано, что мне не нужен никель, когда я это делаю. Я пробовал выполнять разные операции, но это путает математику с другими числами. Если бы вы могли помочь, это было бы здорово.

 total = int(input("Enter change [0...99]: "))
half = total // 50
quarter = total % 50 // 25
dimes = total % 25 // 10
nickels = total % 10 // 5
pennies = total % 5 // 1

print(half, "half (ves)")
print(quarter, "Quarter (s)")
print(dimes, "Dime (s)")
print(nickels, "Nickel (s)")
print(pennies, "penny (s)")
 

Ответ №1:

Вы должны обновляться total после каждой монеты:

 half = total // 50
total = total % 50
# ...
 

Это связано с тем , что не все монеты являются делителями всех предыдущих монет. Например, удаление 25 из суммы изменяет ее делимость на 10 , так total % 10 что это не та же сумма, remainder_after_dimes что (если у вас было нечетное количество четвертей).

Это можно было бы сделать за один шаг, используя divmod :

 half, total = divmod(total, 50)
quarter, total = divmod(total, 25)
dimes, total = divmod(total, 10)
nickels, total = divmod(total, 5)
pennies, total = divmod(total, 1)