Petuhon, задача про монеты
Всем известно, что ведьмак способен одолеть любых чудовищ, однако его услуги обойдутся недешево. К тому же ведьмак не принимает купюры, он принимает только чеканные монеты. В мире ведьмака существуют монеты с номиналами 1, 5, 10, 25
Напишите программу, которая определяет, какое минимальное количество чеканных монет нужно заплатить ведьмаку.
Num = int(input())
total = 1
while Num > 0:
if Num >= 25:
Num -= 25
if Num >= 25:
while Num >= 25:
Num -= 25
total += 1
if Num >= 10:
Num -= 10
if Num >= 10:
while Num >= 10:
Num -= 10
total += 1
if Num >= 5:
Num -= 5
if Num >= 5:
while Num >= 5:
Num -= 5
total += 1
if Num >= 1:
Num -= 1
if Num >= 1:
while Num >= 1:
Num -= 1
total += 1
print(total)
Чего нехватает алгоритму, он не совсем правильно работает просто
Ты пытаешься сложениями / вычитаниями заменить деление / остаток:
n = int(input())
total = 0
for v in [25, 10, 5, 1]:
total += n // v
n %= v
print(total)
Если же убрать из твоего кода всё лишнее, то останется:
Num = int(input())
total = 0 # вот тут у тебя ошибка
while Num >= 25:
Num -= 25
total += 1
while Num >= 10:
Num -= 10
total += 1
while Num >= 5:
Num -= 5
total += 1
while Num >= 1:
Num -= 1
total += 1
print(total)
Num = int(input())
total = 0
for coin in [25, 10, 5, 1]:
while Num >= coin:
total += 1
Num -= coin
print(total)
У тебя изначально количество монет равно 1, мне кажется должно быть 0.
Вложенные циклы не нужны, после того, как инструкции выполнены можно перейти в выполнению следующей операции с помощью continue либо оформить код таким образом, чтобы в другие ветки в этой итерации не было захода с помощью elif