當都為正數時,即1+2+3+...+99,如上,很簡單; 其實,計算正負相間的式子也很簡單,只需要加上一個標記正負號的變數乘到計數器上即可。 用一個布爾型變數來記錄執行加法還是減法,也能達到同樣的效果(這裡額外增加一個要求,就是剔除某個數後,保持正負相間的累加) 這樣,得到的就是1-2+3-4... ...
# 求1-99的所有數的和 count = 1 s = 0 while count < 100: s += count count += 1 print(s)
當都為正數時,即1+2+3+...+99,如上,很簡單;
其實,計算正負相間的式子也很簡單,只需要加上一個標記正負號的變數乘到計數器上即可。
count = 1 s = 0 sign = 1 # 用來標記正負號 while count < 100: s += sign * count sign = -sign #每次執行累加後,把標記賦值為相反數 count += 1 print(s)
用一個布爾型變數來記錄執行加法還是減法,也能達到同樣的效果(這裡額外增加一個要求,就是剔除某個數後,保持正負相間的累加)
is_add = True # 最開始0+1是加法,所以初值為True count = 1 s = 0 while count < 100: if count != 88: # 把想要剔除的數拒之門外,讓計數器下去默默加1 if is_add: s += count is_add = False # 執行加法後,下一次是減法 else: s -= count is_add = True # 執行減法後,下一次是加法 count += 1 print(s)
這樣,得到的就是1-2+3-4...+87-89+90...+98-99的結果
另一種簡單的思路,判斷計數器的奇偶,奇數加,偶數減
s = 0 count = 1 while count <= 99: if count % 2 == 0: s -= count else: s += count count += 1 print(s)