OpenFIPI 2.0
23
5
D3A998
Исполнитель В16 преобразует число, записанное на экране.
У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
3. Умножить на 3
Первая из них увеличивает число на экране на 1, вторая увеличивает его на 2, третья умножает его на 3.
Программа для исполнителя В16 – это последовательность команд.
Сколько существует таких программ, которые исходное число 2 преобразуют в число 14, и при этом траектория вычислений программы содержит число 10?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 7 траектория будет состоять из чисел 8, 24, 26.
200
def f(n, b):
if n == b: # попали
return 1
if n > b: # перепрыгнули
return 0
# недопрыгнули
return f(n + 1, b) + f(n + 2, b) + f(n * 3, b)
# содержит 10
print(f(2, 10) * f(10, 14))
Просмотреть отправленные ответы D3A998