Задача к ЕГЭ по информатике на тему «прочие прототипы» №6

Исполнитель Щелчок преобразует число на экране. У исполнителя есть три команды:

1. Прибавить 1

2. Умножить на 3

3. Прибавить сумму цифр числа

Программа для исполнителя — это последовательность команд.

Сколько существует программ, для которых при исходном числe 11 результатом является число 60?

from functools import lru_cache
@lru_cache(None)
def sum_of_digits(number):
    if number == 0:
        return 0
    else:
        return number % 10 + sum_of_digits(number // 10)

def f(a, b):
    if a == b:
        return 1
    elif a > b:
        return 0
    else:
        return f(a + 1, b) + f(a * 3, b) + f(a + sum_of_digits(a), b)

print(f(11, 60))

 

Ответ: 66173
Оцените статью
Я решу все!