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

这里不是2的n次方

这里不是2的n次方,n从0到20吗?为什么我计算出来的值不对呢

正在回答

1 回答

没看到你的代码,不知道你具体错在哪里,说一下你最可能犯的错误:break是否写在sum=sum+x之前,如果写在之后,则会多加一次

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

20170509 提问者

sum = 0 n = 0 while True:    sum = sum + 2**n    n = n + 1    if n > 20: break 为什么这么写是加了21次呢?
2017-05-11 回复 有任何疑惑可以回复我~
#2

规则君 回复 20170509 提问者

看你的代码,第一次循环 sum=2^0=1(前一项) 然后n=1;第二次循环 sum=2^0+2^1=1+2(前两项),n=2;第二十次循环 sum=2^0+2^1+……+2^19(前二十项),n=20 本来这个时候你就应该跳出循环、求得正确结果了,但因为你设了if n >20,而n=20不满足if条件,所以进行了第二十一次循环:sum=2^0+2^1+……+2^19+2^20(此时共有二十一项),n=21,满足if条件,跳出循环 所以最简单的改法是if n >= 20
2017-05-11 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

这里不是2的n次方

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