Задача к ЕГЭ по информатике на тему «количество программ из a в b где траектория вычислений не содержит число(-а)» №1

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

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

2. Сделай нечётное

Выполняя первую команду, исполнитель увеличивает число на 1, а выполняя вторую – из числа x получает число 2x+1. Сколько существует программ, для которых при исходном числе 1 результатом является число 25 и при этом траектория вычислений не содержит число 21?

def f(n, m):
    if n == m:
        return 1
    if n > m or n == 21:
        return 0
    if n < m:
        return f(n+1, m) + f(n*2 + 1, m)
print(f(1, 25))

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