已知Ackermann函数定义如下
Ack={
n=1 当 m=0时
Ack(m-1,1) 当m≠0,n=0时
Ack(m-1,Ack(m,n-1)) 当m≠0,n≠0时
}
写出计算Ack(m,n)的递归算法,并根据此算法给出Ack(2,1)的计算过程
#include <stdio>
int ackermann(int m, int n)
{
if (m==0)
return 1;
if (n==0)
return ackermann(m-1, 1);
else
return ackermann(m-1, ackermann(m, n-1));
}
int main()
{
int ret = ackermann(2, 1);
printf("%d", ret);
return 0;
}