猴子吃桃问题。

22. 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

                            第二天又将剩下的桃子吃掉一半,又多吃了一个。

                           以后每天早上都吃了前一天剩下的一半另加一个。

                           到第10天早上想再吃时,就只剩一个桃子了。   求第1天共摘了多少个桃子。

分析:递归解题思路:从已知事实出发,求未知结果。

         该题中,已知事实为:第10天共有1个桃子。

                      未知结果为:第1天共摘了多少桃子?

        那么:找出 已知事实 和 未知结果 之间的关系:

                                             由第10天没吃前共有1个桃子,可得出第9天 没吃前 共有几个桃子?找出他们之间的关系。

第10天没吃前共有n10个桃子,第9天没吃前共有n9个桃子:

       由题意得:第9天吃了 (n9/2+1)

                        第9天剩了n9-(n9/2+1)     第9天剩的 就等于 第10天没吃前的桃子

                得:n9-(n9/2+1) =n10

         整理得:n9=2*n10+2    这个公式很重要很关键,它是递归时主要用到的。

                      由这个公式,推出:n8=2*n9+2       n7=2*n8+2

                      想求n1->就得求n2,想求n2,就得求n3..........总结:想求n1,最终就得靠n10求出

                      (n1表示第1天没吃前的桃子个数

代码如下:


while循环:


for循环:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值