Задание 23. Информатика. 2023-11
- Просмотры: 63
- Изменено: 23 ноября 2024
Исполнитель Вычислитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
Первая команда уменьшает число на экране на \(1\), вторая заменяет число на экране на число, равное целой части от деления числа на \(3\).
Программа для исполнителя — это последовательность команд.
Сколько существует таких программ, которые преобразуют исходное число \(33\) в число \(1\), и при этом траектория вычислений содержит число \(9\)?
Траектория вычисления программы — это последовательность результатов выполнения всех команд программы. Например, для программы \(121\) при исходном числе \(18\) траектория состоит из чисел \(17\), \(5\), \(4\).
Решение:
Python
def f(n, target):
if n == target:
return 1
if n < target:
return 0
return f(n-1, target) + f(n // 3, target)
print(f(33, 9)*f(9, 1))
Ответ: \(72\)