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

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

運算過程哪里出問題了

sum = 0 x = 1 n = 1 while True: ? ?n += 1 ? ?x = 2 * x ? ?sum += x ? ?if n >20: ? ? ? ?break print sum 為什么我計算的結果是2097150

正在回答

6 回答

你這代碼想要表達的函數是1+2+4+8+16?

但是你代碼的邏輯是 2+4+8+16?

你可以先改成 sum+=x x=2*x n+=1試試

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

OrnZhz 提問者

非常感謝!
2017-07-17 回復 有任何疑惑可以回復我~
#2

OrnZhz 提問者

x=2*x sum+=x 這段結果為什么是從2開始加的 不是從1開始累加的 之后我將這兩個順序對換一下 ,出現的是正確結果
2017-07-17 回復 有任何疑惑可以回復我~

老鐵,你這個代碼敲出來算的數是 1048574吧 ? 怎么會是2097150呢?

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

問題有兩處:1、應先求和,再改變n和x的值。2、應先判斷是否大于20,再執行求和操作。

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

sum = 0
x = 1
n = 1
while True:
? ?n += 1
? ?x = 2 * x
? ?sum += x
? ?if n >20:
? ? ? ?break
? ?print(sum)
我算的是

1048574


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

我也以為計算20次x=2*x的結果不會很大,但是把你的代碼運行起來后發現數字還真超過了100w,雖然不知道你是覺得應該多大,但你加段代碼就看得出結果了

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

0 回復 有任何疑惑可以回復我~
sum?=?0
x?=?1
n?=?1
while?True:
????n?+=?1
????x?=?2?*?x
????sum?+=?x
????if?n?>20:
????????break
????print?'n=',n
????print?'x=',x
????print?'sum=',sum


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

舉報

0/150
提交
取消
初識Python
  • 參與學習       758364    人
  • 解答問題       8967    個

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

進入課程

運算過程哪里出問題了

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

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

幫助反饋 APP下載

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

公眾號

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