C++:
#include <iostream>
using namespace std;
long Ackermann(int m,int n);
int main()
{
int loop,i,m,n;
cin>>loop;
for(i=1;i<=loop;i++)
{
cin>>m>>n;
cout<< Ackermann(m,n)<<endl;
}
return 0;
}
long Ackermann(int m,int n)
{
if(m==0)
return n+1;
else if(m>0 && n==0)
{
return Ackermann(m-1,1);
}
else if(m>0 && n>0)
{
return Ackermann((m-1),Ackermann(m,n-1));
}
}
scheme:
(define (A x y)
( cond ((= y 0) 0)
((= x 0) (* 2 y))
((= y 1) 2)
(else (A (- x 1)
(A x (-y 1)))))