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

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

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

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

Программа для исполнителя – это последовательность команд. Сколько существует программ, которые преобразуют исходное число \(40\) в число \(4\) и при этом траектория вычислений содержит число \(20\)?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы \(BAC\) при исходном числе \(50\) траектория будет состоять из чисел \(25\), \(23\), \(7\).

Решение:

Python


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

print(f(40, 20) * f(20, 4))

Ответ: \(24\)