为了账号安全,请及时绑定邮箱和手机立即绑定

个人粗浅分析

个人的粗浅理解:

 第一天的桃子数=(第二天的桃子数+1)×2,循环到第10天,还剩1个返回值1也就是结束(也可以试试返回值100个随便几个,这个一就是代表到第十天还剩多少个),结束后才执行后面的return num,就是一直循环累加的num。如果不设置返回值他会一直计算无限循环,返回值就像一个数据参考,没有他计算机无法计算这个公式的结果,所以才会无限循环。 printf("第%d天所剩桃子%d个\n", n, num);输出为什么是反向的?因为我们的计算方式是递推1-2-3-...到-10,找到返回值是1,然后才向主函数返回数值9-8-7...-1。也就是回推。

输出的n,num就是计算过程。代表来回循环9次。

return num;代表的是就是“num = (getPeachNumber(n+1)+1)*2; ”一直到第十天的累加。

本身就是一个if...else...的语句,因为有了递归函数的存在,成为无线循环累加。递归更像是定义一个递归变量,设置一个结束点,计算结果。


正在回答

2 回答

后面说的不对,主函数调用的是getpeachnumber(1),所以才会有所谓的累加,这不叫累加

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

个人粗浅分析

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信