Day032.猴子吃桃问题

代码

'''
    猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第五天早上想再吃时,只剩下一个桃子了。问第一天猴子摘了多少个桃子。
    解析:若第一天摘 x 个,剩下 n1 个,则第一天剩下 n1 = x/2 - 1 个,x = (n1 + 1) * 2, 同理 n1 = (n2 + 1) * 2, ..., 
    n4 = (n5 + 1) * 2, n5 = 1.
    @Ref 2017.Python语言程序设计基础.第2版.嵩天, p30
    @Version: v0.1, Python 3.9.5, Notus(hehe_xiao@qq.com), 2021.05.27
    @Updated: 2021.05.27
'''
n = 1                           # 第 n 天的开始时的桃子数,第 5 天为 1
for i in range(5, 1, -1):       # i 表示天数,用来计算前一天 (即第 i - 1) 开始时的桃子数, 范围从 5 ~ 2。
    n = (n + 1) << 1            # 第 i - 1 天开始时的桃子数为 (n + 1) * 2 即 (n + 1) << 1 (第一次由第 5 天开始时的桃子数计算第 4 天开始时的桃子数)
print(n)

Output

46

原文地址:https://www.cnblogs.com/leo1875/p/14820350.html