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

Просмотры: 96
Изменено: 1 апреля 2025

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

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

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

Сколько существует программ, которые преобразуют число \(51\) в число \(7,\) и при этом траектория вычислений содержит числа \(15\) и \(17,\) но не содержит числа \(32?\)

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

Решение:

Python


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

print(f(51, 17) * f(17, 15) * f(15, 7))

Ответ: \(54\)