#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)