Покупатель должен заплатить в кассу S рублей. У него имеются монеты в 1, 2 и 5 рублей, а также купюры достоинством в 10, 50, 100 и 500 рублей (достаточное количество). Сколько монет и купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных? Операции целочисленного деления (div и mod) использовать нельзя. Протестировать программу для S=567, S=1025, S=64, S=13.
def pay(S) banknotes = [500, 100, 50, 10 coins = [5, 2, 1 total = payment = [ for banknote in banknotes count = total // banknot payment.extend([banknote] * count total -= count * banknot for coin in coins count = total // coi payment.extend([coin] * count total -= count * coi return paymen 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]
banknotes = [500, 100, 50, 10
coins = [5, 2, 1
total =
payment = [
for banknote in banknotes
count = total // banknot
payment.extend([banknote] * count
total -= count * banknot
for coin in coins
count = total // coi
payment.extend([coin] * count
total -= count * coi
return paymen
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, 2For S=1025: [500, 500, 10, 10, 5, 5
For S=64: [50, 10, 2, 2
For S=13: [10, 2, 1]