OpenFIPI 2.0
23
5
498AE5
Исполнитель А16 преобразует число, записанное на экране.
У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
3. Умножить на 2
Первая из них увеличивает число на экране на 1, вторая увеличивает его на 2, третья умножает его на 2.
Программа для исполнителя А16 – это последовательность команд.
Сколько существует таких программ, которые исходное число 3 преобразуют в число 14, и при этом траектория вычислений программы содержит число 10?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 7 траектория будет состоять из чисел 8, 16, 18.
150
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 * 2, b)
# содержит 10
print(f(3, 10) * f(10, 14))
Просмотреть отправленные ответы 498AE5