TQC+ 程式語言Python 310 迴圈公式計算
題目說明:
請使用迴圈敘述撰寫一程式,讓使用者輸入正整數n (1 < n),計算以下公式的總和並顯示結果:
11+2+12+3+13+4+…+1n−1+n
提示:輸出結果至小數點後四位。
範例輸入
8
範例輸出
1.8284
程式碼:
import math
num = eval(input())
Sum = 0
for n in range(2, num + 1):
Sum += 1 / (math.sqrt(n - 1) + math.sqrt(n))
print('%.4f' %Sum)
2 則留言
oo
可以解釋一下程式碼的運作過程嗎
JamesBang
第一行匯入 math 模組,因為需要用到它的 sqrt 方法開平方根。
變數 num 是我們輸入的數字、Sum 則是要輸出的答案。
公式的計算就是四、五行的迴圈,範圍從 2 開始,一直到我們輸入的數字。
P.S. 因為要計算到 num,所以要輸入 num + 1,這樣迴圈的範圍就是 2 ~ num。
接著是迴圈裡的算法,就是照著題目給的公式打的。
Sum += 1 / (math.sqrt(n – 1) + math.sqrt(n)) 是
Sum = Sum + 1 / (math.sqrt(n – 1) + math.sqrt(n)) 的簡寫
主要是讓迴圈每次計算的結果作累加
P.S. 你可以拿張紙,將 n 代入算法,把每次迴圈的結果寫下來,就會和題目給的公式一樣。
例如:迴圈執行第一次 n 為 2,代入算法就是 1 / (math.sqrt(2 – 1) + math.sqrt(2)),和題目給的公式的第一項一樣;執行第一次結束後 Sum 的值就是這個。
執行第二次時 n 為 3,代入算法就是 1 / (math.sqrt(3 – 1) + math.sqrt(3)),和題目給的公式的第二項一樣,然後再將這個值跟前一次的做相加 (因為是用 Sum +=),後面依此類推……
最後輸出用格式化字串,將答案輸出到小數點第四位。