Python经典算法-猴子吃桃-思路分析

  问题:

  

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。问猴子第一天摘了多少个桃子?
分析: 这是一套非常经典的算法题,这个题目体现了算法思想中的递推思想,递归有两种形式,顺推和逆推,针对递推,只要 我们找到递推公式,问题就迎刃而解了。

  

           令S10=1,容易看出 S9=2(S10+1), 简化一下 

             S9=2S10+2

             S8=2S9+2

                 .....

             Sn=2Sn+1+2

    python代码

   

#!/usr/bin/python
# -*- coding:utf-8 -*-

s = 1

for i in range(1, 11):
    print u"现在是第 %d 天,桃子的数目是:%d " % (11 - i, s)
    s = (s + 1) * 2

  

  

猜你喜欢

转载自www.cnblogs.com/68xi/p/9351366.html