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

为什么要用(gepeachNumber(n+1)+1)*2

这里为什么有两个n+1,

正在回答

2 回答

第十天剩一个,  第九天就在昨天的基础1个上  +1  乘以二(因为每天都吃一半多一个)  第八天就在第九天的基础上 +1 乘以2  类推...

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

倒推一下。当实际的n+1=10的时候,我们给getPeachNumber(n)传递的这个“n”就是10了,此时根据自定义函数的内容getPeachNumber返回1,即在getpeachnumber(9)里面的num=(1+1)*2;,那么getpeachnumber(8)里面的num=((1+1)*2+1)*2 ; 然后一层层向外算直到最外面那层。

n代表的是天数,函数里的n+1是为了让天数往前走,外面的+1是题目里的“一半多一个”中的“多一个”。

可以试试用纸把函数里的num计算都列出来,马上就会看懂了。

如果还不明白欢迎继续提问


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

_月入上万

太复杂了
2018-06-17 回复 有任何疑惑可以回复我~
#2

困难00 回复 _月入上万

emmm 所谓递归就是这样写出来简洁理解上复杂的东西。。 那么你先抓住几个点 1. 循环的是什么?搞懂每次循环函数干了什么 2.终点是什么? 找到函数的循环到哪里终止,并且知道这一次和前面数次区别在哪。 递归函数就是由这两点构成,找到循环体,找到终止条件,就知道函数干了什么。 还是那句话,实在不懂就在纸上自己画出来,按照题目的意思自己推一遍,递归函数就是做了和你一样的事情。 另外,实在不懂也不用急,因为至少对于初学者来讲递归函数用处并不是很大。。更多用for和while循环搞定。。。慢慢弄懂这块就好,并不影响c的基本学习
2018-06-17 回复 有任何疑惑可以回复我~
#3

_月入上万 回复 困难00

好的!
2018-06-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么要用(gepeachNumber(n+1)+1)*2

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