運算過程哪里出問題了
sum = 0 x = 1 n = 1 while True: ? ?n += 1 ? ?x = 2 * x ? ?sum += x ? ?if n >20: ? ? ? ?break print sum 為什么我計算的結果是2097150
sum = 0 x = 1 n = 1 while True: ? ?n += 1 ? ?x = 2 * x ? ?sum += x ? ?if n >20: ? ? ? ?break print sum 為什么我計算的結果是2097150
2017-07-13
舉報
2017-07-13
你這代碼想要表達的函數是1+2+4+8+16?
但是你代碼的邏輯是 2+4+8+16?
你可以先改成 sum+=x x=2*x n+=1試試
2017-07-16
老鐵,你這個代碼敲出來算的數是 1048574吧 ? 怎么會是2097150呢?
2017-07-13
問題有兩處:1、應先求和,再改變n和x的值。2、應先判斷是否大于20,再執行求和操作。
2017-07-13
sum = 0
x = 1
n = 1
while True:
? ?n += 1
? ?x = 2 * x
? ?sum += x
? ?if n >20:
? ? ? ?break
? ?print(sum)
我算的是
2017-07-13
我也以為計算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
2017-07-13