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