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

计算结果有误

为什么我在3.6shell里算出来是524287?这是个等比数列求和计算吧。

正在回答

3 回答

你的说法有问题 

等于 的时候还没有break 

所以是执行了20次

n 作为计数的量非常直观

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

研究了2个小时,终于搞明白了。我的答案524287是错的,因为n=n+1放在if语句之前,导致少循环了一次,实际上只计算了19项的和,计算到2的18次方,少算了一个2的19次方。正确答案确实是1048575.

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

对的

sum = 0

x = 1

n = 1

while True:

    n += 1

    sum += x

    x *= 2

    if n > 20:

        break

print(sum)


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

慕SirPython 提问者

你好,请问你说的是我的答案对,还是课程编辑框的答案对啊?
2018-06-09 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

计算结果有误

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