我在递归上有这个子算法,我知道它被称为5次,但是我不明白为什么。初始值为m = 1,n = 2。
我认为该函数被调用了7次。
int Ack(int m, int n)
{
if (m==0)
return n+1;
else
{
if (m>0 && n==0)
return Ack(m-1,1);
else
return Ack(m-1,Ack(m,n-1));
}
}
我希望它被调用7次甚至更多,但实际数字是5。
这是怎么到达7:
答案 0 :(得分:0)
您两次计算了两次通话:#7与#4相同,并且#8与#2相同(仅显示Ack
返回的值):“返回”不是就像打电话一样。