原题:

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第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
else :
print(j,i)
if i == 1:
print("########",i,"day",k)
break
else :
k = k+1
else :
k = k+1
continue

输出结果:

【Python】【demo实验22】【练习实例】【猴子吃桃问题】-LMLPHP

原题给出的解答:

【Python】【demo实验22】【练习实例】【猴子吃桃问题】-LMLPHP

————————(我是分割线)————————

参考:

1. RUNOOB.COM:https://www.runoob.com/python/python-exercise-example21.html

备注:

初次编辑时间:2019年10月3日14:08:25

环境:Windows 7   / Python 3.7.2

05-11 22:19