Составить программу, используя рекурсивные вызовы. Пусть n и m - целые неотрицательные...

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

Составить программу, используя рекурсивные вызовы.
Пусть n и m - целые неотрицательные числа. Написать рекурсивную
программу, вычисляющую классическую в теории рекурсии функцию Аккермана:


image

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

Опачки... наконец-то прибыл Аккерман))) Теперь я точно знаю, что это не задания школьника.

0

Хотя программируется Аккерман без проблем... вот когда мне приходилось его программировать БЕЗ РЕКУРСИИ - это было еще то занятие...

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

// PascalABC.NET 3.0, сборка 1076
function ak(n,m:integer):longint;
begin
  if n=0 then ak:=m+1
  else
    if m=0 then ak:=ak(n-1,1)
    else ak:=ak(n-1,ak(n,m-1))
end;

begin
  Writeln('A(3,3)=',ak(3,3))
end.

Тестовое решение:
A(3,3)=61

А(4,1) - вызывает аварийное завершение программы по переполнению стека из-за большой глубины рекурсии.

(142k баллов)
0

Блин, оказывается, что это легко было сделать, спасибо большое!

0

Вся рекурсия легко программируется