猴子吃桃问题

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第五天早上想再吃时,见只剩下一个桃子了。计算猴子第一天共摘了多少桃子。
1、原代码

n=1
for i in range(4,0,-1):
    n=(n+1)<<1
print(n)

输出结果为:46
2、3种代码对比

n=1
for i in range(4):
    n=(n+1)<<1
print(n)

输出结果为:46

n=1
for n in range(4,0,-1):
    n=(n+1)<<1
print(n)

输出结果为:4

n=1
for n in range(4):
    n=(n+1)<<1
print(n)

输出结果为:8
知识点总结:
1、range() 函数用于生成一个整数序列,常见的用法如下:

range(m,n,k):生成从 m 到 n-1 且步长为 k 的整数序列;

range(m,n):生成从 m 到 n-1 且步长为 1 的整数序列;

range(m):生成从 0 到 m-1 且默认步长为 1 的整数序列。
2、for <循环变量> in <遍历结构>: <语句块>
通过保留字for实现“遍历循环”:从遍历结构中逐一提取元素,放在循环变量中,对于所提取的每个元素执行一次语句块
循环次数:由遍历结构中元素所确定
3、<<:位操作之向左位移(对于二进制来说)
执行1的左位移位相当于乘以2
执行2的左位移位相当于乘以4
执行n的左位移位相当于乘以2**n
7<<1
输出:14

2<<2
#2=0b10
#8=0b1000

输出:8
3<<4
输出:48

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值