猴子吃桃一直以来都是数学家们津津乐道的话题,倒不是说这个题目有多难,主要是它的逆向思维能帮我们解决很多生活和生产中的问题!
下边我们就一起来看看python是怎么计算的?
题目
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,看见只剩下一个桃子了。求第一天共摘了多少。
代码
先上代码~
运行效果
题目详述
程序分析:采取逆向思维的方法,从后往前推断。
第一行:
x = 1
定义一个变量x主要用于记录第十天之后,还剩多少个桃子,题目中是剩1个了,这里就是1
第二行:
for day in range(9,0,-1):
这里创建了一个从9到1的循环,我们看到了range的新用法,这里详细的介绍一个range,三个参数依次是起始值,最终值,计算值,而且range遵循取左不取右的逻辑,即取起始值,不取最终值,所以这里是从9到1的循环,而且是依次减1
第三行:
x = (x + 1) * 2
第day天的时候,猴子还剩下的桃子的个数是前一天加上1,再乘以2,即 (x + 1) * 2,将它赋值给x,再用新的x的值进入下一层的循环,就能不断的实现计算下一天桃子总数的计算
第四行:
print (x)
输出x的值,即是第一天猴子拥有的桃子个数!
进阶:
利用这个原理我们可以轻松的去判断某个数,并根据我们的条件取数
是不是很便捷呢
结束语
总体来说思路只要有了,以后遇到类似的问题就可以解决了,是不是发现原来Python也没有想象中的那么难!
———— e n d ————