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

Источник: https://kpolyakov.spb.ru/

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

1. Прибавь 1

2. Прибавь 3

3. Умножь на 2

Сколько существует программ, которые преобразуют исходное число 3 в число 21 и при этом траектория вычислений содержит число 8 и не содержит числа 12?

def f(a, b):
    if a == b: # Если достигли b
        return 1 # Возвращаем 1
    if a > b or a == 12: # Если перешли за b или попали в 12
        return 0 # Возвращаем 0
    # Рекурсивный вызов функции
    return f(a + 1, b) + f(a + 3, b) + f(a * 2, b)
print(f(3, 8) * f(8, 21))

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