为了账号安全,请及时绑定邮箱和手机立即绑定

计算1+2+4+8+16....前20项之和

sum=0

x=1

n=1

while True:

    sum=sum+x

    x=2**n

    if n>20:

        break

print sum


正在回答

5 回答

n初始是1

第一次循环2**n就是2

所以你少算了2**0

而且n没有自增,是死循环。

0 回复 有任何疑惑可以回复我~
#1

笔杆子 提问者

非常感谢!
2016-02-01 回复 有任何疑惑可以回复我~

不要x也是可以的


sum=0

n=1

while True:

    sum=sum+2**(n-1)

    n=n+1

    if n>20:

        break

print sum



0 回复 有任何疑惑可以回复我~

我知道了,是因为没有加上n=n+1。

sum=0

x=1

n=1

while True:

    sum=sum+x

    x=2**n

    n=n+1

    if n>20:

        break

print sum



0 回复 有任何疑惑可以回复我~

并且我感觉根本用不到x 直接用n就行

0 回复 有任何疑惑可以回复我~

哥们 n应该从0开始 2的0次方是1

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

计算1+2+4+8+16....前20项之和

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信