Мне поручено сделать программу, которая возьмет денежную сумму и найдет минимальное количество монет, необходимых для получения этой суммы. вот мой код.python найти минимальное количество монет
import math
n1 = eval(input("Enter a monetary amount: "))
n1 = n1 * 100
dollars = 0
quarters = 0
dimes = 0
nickels = 0
pennies = 0
dollars = n1/100
n1 %= 100
quarters = n1/25
n1 %= 25
dimes = n1/10
n1 %= 10
nickels = n1/5
n1 %= 5
pennies = n1
print (int(dollars), int(quarters), int(dimes), int(nickels), int(pennies))
всякий раз, когда я ввожу число, которое требует никеля, оно не учитывает их. например, выход на 1.05 будет
1 0 0 0 0
выход на 1,15
1 0 1 0 4
любые намеки будут оценены, спасибо.
отредактировал опечатку, которая у меня была, код все еще не работает должным образом.
Дать решение, которое работает на любой валютной системы является сложным, если у вас есть такие ценности, как 10, 7, 5 и 1. Если вы хотите получить лучшую конфигурацию для 12, вы не можете просто использовать самую большую и продолжать, потому что это даст результат «1 * 10 2 * 1», используя 3 монеты, хотя вы можете сделать это с помощью 2 : '1 * 7 1 * 5'. Я попытаюсь написать такое решение в любом случае *, потому что * это сложно. – CodenameLambda
Зачем использовать 'eval' вместо' int' или 'float'? –
@KevinMGranger Я бы предположил, что он прошел через скрипт '2to3', поскольку он меняет' input (...) 'python2' на 'eval (input (..))' –