Задание 23. Информатика. ЕГЭ. Статград. 17.12.2024
- Просмотры: 1030
- Изменено: 18 января 2025
Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены буквами:
- Вычти \(3\)
- Если число чётное, Раздели на \(2,\) Иначе Вычти \(5\)
Программа для исполнителя – это последовательность команд. Сколько существует программ, которые преобразуют исходное число \(36\) в число \(3\) и при этом траектория вычислений не содержит числа \(12?\)
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы BAB при исходном числе \(100\) траектория будет состоять из чисел \(50,\) \(47,\) \(42.\)
Решение:
Python
def f(n, t):
if n < t or n == 12:
return 0
if n == t:
return 1
return f(n - 3, t) + f(n // 2 if n % 2 == 0 else n - 5, t)
print(f(36, 3))
Ответ: \(16\)