Задание 23. Информатика. ЕГЭ. Статград. 01.04.2025-1
- Просмотры: 96
- Изменено: 1 апреля 2025
Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:
- вычти \(1\)
- найди целую часть от деления на \(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\)