Предмет: Информатика, автор: zlodeika225

СРОЧНО!! ДАЮ 40 БАЛЛОВ!!!
Язык программирования - Python.

Имеется неограниченное количество монет в 1, 2, 5, 10 рублей. Определите, сколькими способами можно выдать сдачу в n рублей. Например, 5 рублей можно выдать четырьмя способами: 5=2+2+1=2+1+1+1=1+1+1+1+1.

Входные данные
Программа получает на вход натуральное число n, не превышающее 106.

Выходные данные
Выведите ответ на задачу. Примечание Правильное решение задачи можно написать, используя всего один цикл while. Примеры
Ввод
2
100000
Вывод
2
1667116705001


KnowsUser1: И ещё 101 способ отправить интерпретатор Python познавать дзен)
zlodeika225: Что?
KnowsUser1: Да так, шутки ради сказано. Эта задача при неаккуратном вводе может запросто повесить ваш компьютер минут на 30
zlodeika225: Это я знаю)
KnowsUser1: Питон слишком тормозной для подобных расчётов, при вводе 10000, как вы предлагаете, наверное даже си задумается на пару минут
zlodeika225: Согласна, но, увы, задачу дали мне именно эту...
KnowsUser1: вы, конечно, занятные данные для тестов предложили. У меня вот вроде что то получилось, а проходит ли оно ваши тесты - я не знаю, питон ушёл курить бамбук
zlodeika225: :)

Ответы

Автор ответа: KnowsUser1
10

Ответ:

--- Python 3.8.3 ---

n = int(input('n: \n'))

counter = 0

for coin1 in range(0, n+ 1):

   for coin2 in range(0, (n // 2) + 1):

       for coin5 in range(0, (n // 5) + 1):

           for coin10 in range(0, (n // 10) + 1):

               if coin1 * 1 + coin2 * 2 + coin5 * 5 + coin10 * 10 == n: counter += 1

print(counter)

для n в пределах 100-200 считает вроде правильно, и достаточно быстро. Что до больших значений n, мне не хватило терпения. Ненормально это, успеть попить чаю в ожидании конца работы программы в 8 строк.

При желании можно использовать как стресс-тест ЦПУ


zlodeika225: Благодарю, но, увы, не подошло)
KnowsUser1: М-да, пожалуй, это первый раз, когда я затрудняюсь исправить решение)
zlodeika225: :)
zlodeika225: Но, в любом случае, спасибо)
Похожие вопросы
Предмет: Английский язык, автор: yulya021199
Предмет: Алгебра, автор: Евгенн156