目前位置: 首页 » python算法300例 »正文

python算法例9:猴子吃桃问题

这个是比较经典的一个python算法练习题。

题目:

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

分析:

这种算法题,最好是先动手算一算,找下其中的规律。

s10=1

s10=s9/2-1,所以s9=(s10+1)*2

s9=s8/2-1,s8=(s9+1)*2

后面的就不用写了,规律已经出来了。

1
2
3
4
5
6
7
8
9
10
11
12
<pre>python3.9代码如下:

t=1
s=[1]
for i in range(1,10):
    t=2*(t+1)
    s.append(t)
s.sort(reverse=True)
print("每天剩余桃子数:",s)
print("第一天桃子数为%d"%(s[0]))

</pre>

输出结果如下

输出结果

这个主要是采用逆向思维的方法,由后往前推导!

交流学习python编程,加微信acboy88

推荐阅读