Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера.
1. Прибавь 2.
2. Умножь на 2.
Первая из них увеличивает число на экране
Программа для исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном
Приведём программу на PascalABC, решающую данную задачу:
var
n: integer;
function F(n: integer; m: integer): integer;
begin
if n > m then
F := 0
else if n = m then
F := 1
else
F := F(n + 2, m) + F(n * 2, m)
end;
begin
writeln(F(1, 18) * F(18, 52))
end.
Результат работы программы — 96.
Ответ: 96.
Приведём другое решение на языке Python.
def f(x, y):
if x > y:
return 0
if x == y:
return 1
else:
return f(x + 2, y) + f(x * 2, y)
print(f(1, 18) * f(18, 52))

