У меня проблемы с этим испытанием, оно продолжает давать мне 100% ошибок. Вот мой код:
N = float(input())
if 0 < N < 1000000:
print('NOTAS:')
for i in [100, 50, 20, 10, 5, 2]:
print('%d nota(s) de R$ %d.00' %((N//i),i))
N %= i
print('MOEDAS:')
for i in [1, 0.5, 0.25, 0.10, 0.05, 0.01]:
print('%d moeda(s) de R$ %.3f' %((N//i),i))
N %= i
Вот что спрашивают:
Считайте значение с плавающей запятой с двумя десятичными знаками. Это представляет денежную стоимость. После этого рассчитайте наименьшее возможное количество банкнот и монет, на которые можно разложить значение. Рассматриваются банкноты 100, 50, 20, 10, 5, 2. Возможные монеты 1, 0,50, 0,25, 0,10, 0,05 и 0,01. Распечатайте сообщение «NOTAS:», затем список заметок и сообщение «MOEDAS:», а затем список монет.
Ввод
Входной файл содержит значение с плавающей точкой N (0 ≤ N ≤ 1000000.00).
Вывод
Вывести минимальное количество банкнот и монет, необходимое для изменения начального значения, в качестве приведенный пример
Итак, большинство тестов, которые я провел, дали мне правильные ответы, но когда я тестирую, например, 0.06, это не работает. Вот результат для ввода 0,06:
0,06
NOTAS:
0 нот (-ов) от R $ 100,00
0 нот ( s) R $ 50,00
0 нот (-ов) de R $ 20,00
0 нот (-ов) R $ 10,00
0 нот (-ов) R $ 5,00
0 нот (ов) 2,00
MOEDAS:
0 моед (ов): 1,00
0 moeda (s) de R $ 0.50
0 moeda (s) de R $ 0.25
0 moeda (s) de R $ 0.10
1 moeda (s) de R $ 0.05
0 moeda (s) de R $ 0.01
Результат должен быть "1 moeda de R $ 0.05" и "1 moeda de R $ 0.01". Любые мысли о том, почему это происходит?
OBS: Я думаю, что проблема в последней строке, в команде 'N% = i', что означает N = N% i