Задание 23. Информатика. ЕГЭ. Шастин. 19.09.2024

Просмотры: 373
Изменено: 24 ноября 2024

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

  1. Вычесть \(2\)
  2. Вычесть \(3\)
  3. Найти целую часть от деления на \(4\)

Программа для исполнителя — это последовательность команд.

Сколько существует программ, для которых при исходном числе \(36\) результатом является число \(13\), при этом траектория вычислений не содержит числа \(24?\)

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы \(CBA\) при исходном числе \(51\) траектория будет состоять из чисел \(12\), \(9\), \(7\).

Решение:

Python


def f(num, target, deny):
    if num < target or num == deny:
        return 0
    if num == target:
        return 1
    return f(num - 2, target, deny) + f(num - 3, target, deny) + f(num // 4, target, deny)

print(f(36, 13, 24))

Ответ: \(157\)