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

原题:

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第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
        
        
    

输出结果:

原题给出的解答:


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

参考:

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

备注:

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

环境:Windows 7   / Python 3.7.2

猜你喜欢

转载自www.cnblogs.com/kaixin2018/p/11619696.html
今日推荐