Условие:
Инженер Пётр пишет программу для банкомата, чтобы он мог разменивать денежные средства. В распоряжении у банкомата имеются монеты номиналом 1, 2, 5 и 10 рублей. Количество монет каждого вида не ограничено. Сколько существует способов разменять сумму 100 рублей? При размене необязательно использовать монеты каждого номинала.
Решение:
Для решения задачи о размене суммы 100 рублей с использованием монет номиналом 1, 2, 5 и 10 рублей можно воспользоваться методом динамического программирования. Обозначим dp[i] как количество способов разменять сумму i рублей. Начнем с инициализации массива dp, где dp[0] = 1, так как существует один способ разменять сумму 0 рублей — не использовать никаких монет. Далее, для каждого номинала монеты будем обновлять массив dp. Процесс можно описать следующим образом...
Запустив этот код, мы получим количество способов разменять 100 рублей с использованием монет номиналом 1, 2, 5 и 10 рублей. В результате, количество способов разменять 100 рублей составляет .