Задание 23. Информатика. ЕГЭ. Апробация. 05.03.2025

Просмотры: 599
Изменено: 6 марта 2025

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

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

Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе \(30\) результатом является число \(1,\) и при этом траектория вычислений содержит число \(12?\)

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы ABB при исходном числе \(10\) траектория состоит из чисел \(9, \, 4, \, 2.\)

Решение:

Python


def f(n, targ):
    if n < targ:
        return 0
    if n == targ:
        return 1
    return f(n - 1, targ) + f(n // 2, targ)

print(f(30, 12) * f(12, 1))

Ответ: \(376\)