Задание 23. Информатика. 2023-18
- Просмотры: 115
- Изменено: 24 ноября 2024
Исполнитель М132 преобразует число, записанное на экране.
У исполнителя есть три команды, которым присвоены номера:
Первая команда увеличивает число на экране на \(1\), вторая увеличивает его на \(3\), третья умножает его на \(2\).
Программа для исполнителя М132 — это последовательность команд.
Сколько существует программ, которые преобразуют исходное число \(3\) в число \(14\) и при этом траектория вычислений программы содержит числа \(8\) и \(11\)? Траектория должна содержать оба указанных числа.
Траектория вычислений программы — это последовательность результатов выполнения всех команд. Например, для программы \(132\) при исходном числе \(7\) траектория будет состоять из чисел \(8\), \(16\), \(19\)
Решение:
Python
def f(n, target):
if n == target:
return 1
if n > target:
return 0
return f(n+1, target) + f(n+3, target) + f(n*2, target)
print(f(3, 8) * f(8, 11) * f(11, 14))
Ответ: \(24\)