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

请问我这里哪里错了,输出为什么是189?

sum = 0

x = 1

n = 1

while True:

    sum=sum+x

    x=2^n

    n=n+1

    if n>20:

        break

print sum


正在回答

4 回答

次方运算符用**不是^

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

错误点:1.次方符号错误,应该用**表示;2.按照你的理解是每一项的值是2的第n次方,所以n的值应该从0开始:即n=0,这样才能保证x的第一项是从1开始的,如果n=1,你这个第一项就是从2开始的,即:2,4,8,16....

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

x=2^n 改成 x=2**(n-1)就可以了

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

http://img1.sycdn.imooc.com//5dad6573000108ee05920363.jpg

你的sum只计算到sum+2^19而并非sum+2^20,所以可以把n=n+1放到break后面就可以计算到sum+2^20

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

举报

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

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

进入课程

请问我这里哪里错了,输出为什么是189?

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