猴子吃桃问题。

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循环:

猴子吃桃问题。