Задание 23. Информатика. 2022-20
- Просмотры: 122
- Изменено: 25 ноября 2024
Исполнитель Счётчик преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
Первая из них увеличивает число на экране на \(1\), вторая умножает его на \(3\). Программа для исполнителя Счётчик — это последовательность команд. Сколько существует таких программ, для которых при исходном числе \(1\) результатом является число \(40\) и при этом траектория вычислений программы содержит число \(12\) и не содержит числа \(35\)?
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы \(121\) при исходном числе \(4\) траектория будет состоять из чисел \(5\), \(15\), \(16\).
Решение:
Python
def f(n, target):
if n == target:
return 1
elif n == 35 or n > target:
return 0
else:
return f(n+1, target) + f(n*3, target)
print(f(1, 12)*f(12, 40))
Ответ: 14