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

错在哪里?

sum = 0

n = 0

while True:

    sum = sum + 2^n

    n=n+1

    if n > 19:

        break

print sum


正在回答

3 回答

sum = 0

n = 0

while True:

    sum = sum + 2**n

    n=n+1

    if n > 19:

        break

print sum

你的基本思路是正确的,应该是指数表示的问题,2^n算出来为0,可能Python不支持,用2**n代替。

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

看了好长时间,也没发现思路有啥问题。

一点点排除,最后发现是2的N次方的写法的问题。百度了一下,换了种写法,答案就正确了。

上代码:

http://img1.sycdn.imooc.com//574d41ff0001816d03270182.jpg

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

zhzhao_

。。。 好不容易找到问题了 ,发现人家已经解决了,还是效率不行啊。。。
2016-05-31 回复 有任何疑惑可以回复我~
#2

可豪 提问者 回复 zhzhao_

没事没事,他们回答出来前,我已经度娘发现问题了, 所以你不输他们 哈哈哈
2016-05-31 回复 有任何疑惑可以回复我~
#3

可豪 提问者

不过仔细看了下你的写法, pow(2,n)这种写法我还真不知道,所以,谢谢啦
2016-05-31 回复 有任何疑惑可以回复我~

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

可豪 提问者

恩恩,你这种写法我了解,多谢。 刚才的问题错的地方我查到了, 主要是python中 2的n次方的表达方式是 2**n, 而非 2^n
2016-05-31 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

错在哪里?

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