Задание 23. Информатика. Фоксфорд 2023-3
- Просмотры: 93
- Изменено: 24 ноября 2024
Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
Программа для исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном числе \(1\) результатом является число \(48\) и при этом траектория вычислений программы содержит число \(16\) и не содержит \(23\)?
Траектория вычислений программы — это последовательность результатов выполнения всех команд. Например, для программы \(121\) при исходном числе \(5\) траектория будет состоять из чисел \(6\), \(12\), \(13\).
Решение:
Python
def f(n, target):
if n == target:
return 1
elif n > target or n == 23:
return 0
return f(n+1, target) + f(2*n, target)
print(f(1, 16) * f(16, 48))
Ответ: \(252\)