Покупатель должен заплатить в кассу S рублей. У него имеются монеты в 1, 2 и 5 рублей, а также купюры достоинством в 10, 50, 100 и 500 рублей (достаточное количество). Сколько монет и купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных? Операции целочисленного деления (div и mod) использовать нельзя. Протестировать программу для S=567, S=1025, S=64, S=13.

15 Янв 2020 в 19:42
355 +1
0
Ответы
1
def pay(S):
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]
18 Апр в 20:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 85 936 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир