У исполнителя калькулятор две команды, которым присвоены номера:1) прибавь 1;2) умножь **...

0 голосов
191 просмотров

У исполнителя калькулятор две команды, которым присвоены номера:
1) прибавь 1;
2) умножь на 4.
Напишите программу, которая вычисляет, сколько существует различных программ, преобразующих число M в число N, оба числа вводятся с клавиатуры.


Информатика (35 баллов) | 191 просмотров
0

11

Дан 1 ответ
0 голосов
Правильный ответ

{работает для натуральных чисел}

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.

(8.5k баллов)