这个是比较经典的一个python算法练习题。
题目:
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
分析:
这种算法题,最好是先动手算一算,找下其中的规律。
s10=1
s10=s9/2-1,所以s9=(s10+1)*2
s9=s8/2-1,s8=(s9+1)*2
后面的就不用写了,规律已经出来了。
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]))
输出结果如下
这个主要是采用逆向思维的方法,由后往前推导!
交流学习python编程,加微信acboy88
标签: