← К задачам
Сдача минимумом монет
Кассир в небольшом магазине должен выдать сдачу как можно меньшим числом монет. В кассе есть монеты номиналом 10, 5, 2 и 1 (этого набора всегда хватает, чтобы набрать любую сумму). Жадный алгоритм здесь даёт оптимум: берём как можно больше крупных монет, затем спускаемся к мелким.
Напишите функцию make_change(amount), которая принимает неотрицательное целое число — сумму сдачи — и возвращает словарь {номинал: количество}, включая только те номиналы, которые реально использованы (с количеством больше нуля). Для суммы 0 верните пустой словарь {}.
Пример:
make_change(18) -> {10: 1, 5: 1, 2: 1, 1: 1}
make_change(20) -> {10: 2}
def make_change(amount):
pass
Для запуска тестов необходима авторизация.