下面是一个代码做递归出故障了较大的值:如何计算这漫长的递归
int rec(int m,int n)
{
if(m==0)
return n+1;
if(m>0 && n==0)
return rec(m-1,1);
if(m>0 && n>0)
return rec(m-1,rec(m,n-1));
}
如果我调用该函数rec(m,n)
:
- 与
m=1
和n=2
,结果我得到是4
- 与
m=2
和n=2
,它是7
, - 与
m=3
和n=2
,它是29
但崩溃为m=4
和m=2
。有没有其他的方法来计算它?
这是阿克曼的功能吗? :D – Dejan
那你有什么问题?你想知道*为什么它崩溃,你想让它为(4,2)工作吗?还有别的吗? – delnan
是的,这是阿克曼的功能。 – dabs