Day17:Python基础编程(循环)能力训练50天——猴子吃桃

这篇博客探讨了猴子吃桃的经典问题,通过正向和逆向推理分析了问题,并提供了使用Python的递归编码实现。从第一天的桃子数量开始,每次猴子吃掉剩下的一半再加一个,直到第10天只剩下一颗桃子,求解最初有多少颗桃子。

day17

猴子吃桃

猴子吃桃问题:猴子第一天摘下若干个桃子, 当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下 的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少?

分析

1.正向推理
设猴子第一天摘桃子n
第n天 吃桃子数 剩余桃子数 桃子总数
1 n/2+1 n-n/2-1=n/2-1 n
2 (n/2-1)/2+1 n/2-1-(n/2-1)/2-1 (n-2)/2
3 (n-6)/8 +1 (n-6)/4- (n-6)/8 -1 (n-6)/4
4 (n-26)/8
2.逆向推理
第n天 吃桃子数 剩余桃子数 桃子总数
10 1 1
9 2+1 1 4= (1+1)*2
8 5+1 4 10= (4+1)*2
7 11+1 10 22= (10+1)*2

编码实现

1.编码实现(递归)

def fun(n):
    if n==1:
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值