原题:
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
分析:
两种解答方式:第一种,顺推,第二种,倒推
我的源码:
#!/usr/bin/python
# encoding=utf-8
# -*- coding: UTF-8 -*-
# 猴子吃桃问题:
# 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
# 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
# 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
# 吃了10天,至少有11个桃;
k = 11 # 最初至少有11个;
#
#总共s个桃;
s = 0
while(1):
i = k
print(k)
if (i/2-1)%2 == 0 :
for j in range(1,10): # 吃了9天,最后剩下1个;
i = i - i* 0.5 - 1 # 计算第j天剩下的套子
if not (i == int(i)):
break