У исполнителя калькулятор две команды, которым присвоены номера:1) прибавь 1;2) умножь на 4.Напишите программу, которая вычисляет, сколько существует различных программ, преобразующих число M в число N, оба числа вводятся с кла...
У исполнителя калькулятор две команды, которым присвоены номера:
1) прибавь 1;
2) умножь на 4.
Напишите программу, которая вычисляет, сколько существует различных программ, преобразующих число M в число N, оба числа вводятся с клавиатуры.
Ответ(ы) на вопрос:
{работает для натуральных чисел}
function f(m,n : integer): integer;
begin
if n = m then
f := 1
else
if n < m then
f := 0
else
if (n mod 4 = 0) and (n <> 0) then
f := f(m,n-1) + f(m,n div 4)
else
f := f(m,n-1)
end;
var
m,n : integer;
begin
read(m,n);
writeln(f(m,n))
end.
Не нашли ответ?
Похожие вопросы