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

Просмотры: 1030
Изменено: 18 января 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\)