Задание 23. Информатика. ЕГЭ. Статград. 17.12.2024

Просмотры: 2963
Изменено: 1 февраля 2025

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

  1. Вычти 3
  2. Если число чётное, Раздели на 2, Иначе Вычти 5

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

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы BAB при исходном числе 100 траектория будет состоять из чисел 50, 47, 42.

Решение:

Python


def f(n, t):
    if n < t or n == 12:
        return 0
    if n == t:
        return 1
    return f(n - 3, t) + f(n // 2 if n % 2 == 0 else n - 5, t)

print(f(36, 3))

Ответ: 16