Покупатель должен заплатить в кассу S рублей. У него имеются монеты в 1, 2 и 5 рублей, а также купюры достоинством в 10, 50, 100 и 500 рублей (достаточное количество). Сколько монет и купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных? Операции целочисленного деления (div и mod) использовать нельзя. Протестировать программу для S=567, S=1025, S=64, S=13.
banknotes = [500, 100, 50, 10]
coins = [5, 2, 1]
total = S
payment = []
for banknote in banknotes:
count = total // banknote
payment.extend([banknote] * count)
total -= count * banknote
for coin in coins:
count = total // coin
payment.extend([coin] * count)
total -= count * coin
return payment
S_values = [567, 1025, 64, 13]
for S in S_values:
payment = pay(S)
print(f"For S={S}: {payment}")
Результат выполнения:
For S=567: [500, 50, 10, 5, 2]For S=1025: [500, 500, 10, 10, 5, 5]
For S=64: [50, 10, 2, 2]
For S=13: [10, 2, 1]