10. Запишите на языке Python программу, реализующую алгоритм работы кассира, выдающего покупателю сдачу (s) наименьшим возможным количеством банкнот по 500 (k500), 200 (k200), 100 (k100) и 50 (k50) рублей. Предусмотрите вывод сообщения о том, что часть сдачи, которую невозможно выдать купюрами, будет выдана монетами. Для проверки правильности программы используйте тест:
Входные данные
845
Выходные данные
Следует сдать:
банкнот по 500 руб. — 1 шт.
банкнот по 200 руб. — 1 шт.
банкнот по 100 руб. — 1 шт.
банкнот по 50 руб. — 0 шт.
монетами — 45 руб.

Ответ
программы на языке Python, которая реализует алгоритм работы кассира:
def make_change(amount):
k500 = amount // 500
amount %= 500
k200 = amount // 200
amount %= 200
k100 = amount // 100
amount %= 100
k50 = amount // 50
amount %= 50
return k500, k200, k100, k50, amount
# Получаем входную сумму от пользователя
amount = int(input("Введите сумму: "))
# Вызываем функцию make_change для вычисления количества банкнот и монет для сдачи
k500, k200, k100, k50, coins = make_change(amount)
# Выводим результаты
print("Следует сдать:")
print("Банкнот по 500 руб. -", k500, "шт.")
print("Банкнот по 200 руб. -", k200, "шт.")
print("Банкнот по 100 руб. -", k100, "шт.")
print("Банкнот по 50 руб. -", k50, "шт.")
print("Монетами -", coins, "руб.") В данной программе:
- Функция make_change(amount) принимает сумму amount и вычисляет количество банкнот различного достоинства и остаток, который будет выдан монетами.
- Далее, программа запрашивает у пользователя входную сумму и сохраняет ее в переменной amount.
- Затем, с помощью вызова функции make_change(amount), программа вычисляет количество банкнот и монет для сдачи.
- Результаты выводятся на экран с помощью функции print().
Таким образом, программа реализует алгоритм работы кассира и выводит количество банкнот различного достоинства и остаток, который будет выдан монетами.