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

哪里出问题了?

这段代码的运行结果为2097150,提交的时候一直提示"请检查输出是否匹配:1048575.."请问哪里错了呢?我检查了好久,始终找不到原因,求高手解答.


正在回答

4 回答

sum = 0
x = 1
n = 1
while True:
   if n > 20:
       break
   sum = sum + x
   x = x * 2
   n = n + 1
print sum

差别就是 sum = sum + x 放的位置, 最后一次 的x 的值 是1048576,这是n 是21, 正确的代码 这次的x 的值没有加给sum (在 if 语句处,break 出循环)。 而题主的代码, x 是1048576 的时候 直接加给了 sum 而后才在if 出跳出循环, 另外 题主的sum 第一次执行的是 sum = sum (0) + x (2),  没有从1 开始。


其实要想 知道循环的过程 只要在 sum = sum + x 前面插上一句 print x 就好了。

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

慕容2639740 提问者

非常感谢!
2016-05-09 回复 有任何疑惑可以回复我~
sum = 0
x = 1
n = 1
while True:
    if n > 20:
        break
   sum=sum+x
    x=x*2
    n =n+1
print sum
试试这个,应该可以了


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

题目要求是1+2+4+8+16+。。。 在你的程序中怎么取到1这个数字?

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

判断语句应当放到n=n+1后面,否则你实际计算到了n=21

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

举报

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

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

进入课程

哪里出问题了?

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