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