Задача к ЕГЭ по информатике на тему «количество программ из a в b смешанное» №5

Исполнитель Сова преобразует число на экране.

У исполнителя есть три команды, которым присвоены номера:

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

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

3. Сделать нечетное (умножить на два и вычесть 1)

Первая команда увеличивает число на экране на 2, вторая увеличивает его в 3 раза, третья увеличивает в два раза и уменьшает на один. Программа для исполнителя Сова — это последовательность команд.

Сколько существует программ, для которых при исходном числе 5 результатом является число 37, и при этом траектория вычислений содержит число 17 и не содержит число 21? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 1 траектория будет состоять из чисел 3, 5, 15.

def f(a,b):
    if a > b or a == 21:return 0
    if a == b:return 1
    if a < b:return f(a+2,b) + f(a*3,b) + f(a*2-1,b)
print(f(5,17)*f(17,37))

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