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

这是什么意思,不应该是(n+1)*2么?

num = (getPeachNumber(n+1)+1)*2

正在回答

3 回答


第一,整体的关系:

getPeachNumber(n)代表当天剩下的桃子数

getPeachNumber(n+1)代表前一天剩下的桃子数

首先n=1,第n天的桃子数为getPeachNumber(n):

函数从第1天开始桃子数为:getPeachNumber(1),

...

第10天桃子数getPeachNumber(10)的值为1,题意为第10天吃完剩下一个桃子

【所以在getPeachNumber递归里,需要每一次都输入(n+1)去获取前一天的桃子数。】


第二,由关系得等式:

第10天的桃子数 = 第9天的桃子数/2-1   ===>   第9天的桃子数  = (第10天的桃子数+1)*2

依次类推....

第2天的桃子数 = 第1天的桃子数/2-1   ===>   第1天的桃子数  = (第2天的桃子数+1)*2

【规律是:第n天的桃子数 = (第n+1天的桃子数+1)*2】


第三,将第一步中整体的关系代入第二步中:

第n天的桃子数 = (第n+1天的桃子数+1)*2

getPeachNumber(n) = (getPeachNumber(n+1) + 1) * 2


说明:getPeachNumber(n+1)就是第n+1天的桃子数,这在第二步中可以得出。


第四,n代表天数,第10天吃完之后只剩下1个桃子,所以n==10时,返回1。



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

按照题目意思呀,题目不是说了会吃一半多一个么,比如第10天剩1个,那么第九天有多少个呢,假设x个,那么就是x/2 - 1(多吃的一个) = 1(剩的的一个);那么x = [1(剩)+1(多吃)]*2,所以就是后一天等于前一天的加一再乘以2,即第一天的桃子数=第二天的桃子数加一再乘二,以此类推

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

这里的 getPeachNumber(n) n代表天数  下面主函数代入值为1  然后带到递归函数里 (getPeachNumber(1+1=2)+1)*2 的意思是 第一天的桃子数=第二天的桃子数加一再乘二 

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

十二点半

这是怎么看出来的呢
2018-12-28 回复 有任何疑惑可以回复我~
#2

米虫懒得聪明 回复 十二点半

按照题目意思呀,题目不是说了会吃一半多一个么,比如第10天剩1个,那么第九天有多少个呢,假设x个,那么就是x/2 - 1(多吃的一个) = 1(剩的的一个);那么x = [1(剩)+1(多吃)]*2,所以就是后一天等于前一天的加一再乘以2,即第一天的桃子数=第二天的桃子数加一再乘二,以此类推
2019-01-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这是什么意思,不应该是(n+1)*2么?

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