这个C语言程序的结果怎么算?答案是61

#include<stdio.h>intacker(intm,intn){if(m==0)returnn+1;elseif(n==0)returnacker(m-1,1)... #include<stdio.h>

int acker(int m,int n)
{
if(m==0)
return n+1;
else if(n==0)
return acker(m-1,1);
else
return acker(m-1,acker(m,n-1));
}
int main()
{
printf("%d\n",acker(3,3));
return 0;
}
展开
 我来答
pardream941026
2020-03-16 · TA获得超过8216个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1276万
展开全部
  1. int acker(3,3): return acker(2, acker(3, 2))

  2. 先执行 acker(3,2): return acker(2, acker(3,1))

  3. 先执行 acker(3,1): return ackert(2, acker(3,0))

  4. 先执行acker(3,0) : 由于n=0,所以return acker(2,1)

  5. 计算acker(2,1) : return acker(1, acker(2, 0))

  6. 先计算acker(2,0): return acker(1,1)

  7. 计算acker(1,1) : return acker(0, acker(1, 0))

  8. 先计算acker(1,0):  return acker(0, 1)

  9. acker(0, 1) 结果是return n+1 即,return 2;

  10. 返回到第8步,继续返回2

  11. 返回到第7步, acker(1,0)=2,继续计算 return acker(0, 2)

  12. acker(0, 2) 结果return n+1, 即return 3;

  13. 返回到第6步,继续返回3到第5步 acker(2,0)=3,继续计算 return acker(1, 3);

  14. ........

  15. 按照上述步骤一直计算下去,直到所有的计算都完毕。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式