Задача к ЕГЭ по информатике на тему «количество результатов выполнения программ» №1

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

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

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

Программа для исполнителя — это последовательность команд. Сколько существует значений, в которые можно прийти не менее чем за 1, но не более чем за 8 команд из числа 2?

def f(a, k = 0):
    if 1 <= k <= 8:
        s.add(a)
    elif k > 8:
        return 0

    f(a + 3, k + 1)
    f(a * 4, k + 1)

s = set()
f(2)
print(len(s))

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