Задание 23. Информатика. ЕГЭ-2022. 1 вариант

Просмотры: 45
Изменено: 19 сентября 2024

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

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

Первая из них уменьшает число на экране на \(1\), вторая заменяет число на экране на целую часть от деления числа на \(2\).
Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе \(30\) результатом является число \(1\), и при этом траектория вычислений содержит число \(12\)?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.
Например, для программы 122 при исходном числе \(10\) траектория состоит из чисел \(9\), \(4\), \(2\).

Решение:

Python


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


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

Ответ: \(376\)