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