Каковы варианты выдачи сдачи в n рублей, учитывая наличие монет в 1, 2, 5, 10 рублей? Пример: 5 рублей может быть

Каковы варианты выдачи сдачи в n рублей, учитывая наличие монет в 1, 2, 5, 10 рублей? Пример: 5 рублей может быть выдано четырьмя способами: 5=2+2+1=2+1+1+1=1+1+1+1+1. Ограничения: входные данные - натуральное число n, не больше 100. Вывести ответ на задачу. Пример ввода: 2. Пример вывода: 2.
Магнитный_Пират_1045

Магнитный_Пират_1045

В данной задаче мы должны определить количество способов выдачи сдачи в n рублей, учитывая наличие монет достоинством 1, 2, 5 и 10 рублей. Для решения данной задачи мы можем использовать динамическое программирование.

Для начала, давайте создадим массив dp, где dp[i] будет представлять количество способов выдачи сдачи с использованием монет для достижения суммы i. Изначально все значения в dp будут равны 0.

Затем установим базовый случай - dp[0] = 1, так как у нас всегда есть один способ выдать 0 рублей, даже без использования монет.

Теперь приступим к заполнению массива dp.

Для каждого достоинства монеты j (1, 2, 5 и 10) будем перебирать все значения i от j до n включительно и обновлять значение dp[i] следующим образом:

dp[i] = dp[i] + dp[i-j]

То есть, мы добавляем к текущему значению dp[i] количество способов выдачи сдачи с использованием монет для суммы (i - j).

После завершения процесса заполнения массива dp, количество способов выдачи сдачи в n рублей будет равно dp[n].

Для примера ввода равного 2, пример вывода будет следующим:
1

Так как у нас есть только один способ выдать 2 рубля - 2 монетой достоинством 1.

Надеюсь, что объяснение было полным и понятным.
Знаешь ответ?
Задать вопрос
Привет!
hello