Ackerman函数递归实现(C语言)
此函数在此不做详细介绍。下面直接上代码。
输入样例:
4 3
输出样例:
65536
源代码
#include<stdio.h>
int Ackerman(int n, int m)
{
if(n<0 || m<0)
return 0;
else if(n==1 && m ==0)
return 2;
else if(n==0 && m>=0)
return 1;
else if(n>=2 && m==0)
return n+2;
else if(n>=1 && m>=1)
return Ackerman(Ackerman(n-1,m),m-1);
}
int main()
{
int n,m;
int result;
scanf("%d %d", &n, &m);
result = Ackerman(n,m);
printf("%d", result);
return 0;
}
建议:此函数有点诡异,请勿输入太大的数字。