亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

哪里出問題了?

這段代碼的運行結果為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
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

哪里出問題了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號