1-1/2+2/3-3/5+4/8-5/13+...的前n項和,n由用戶輸入(n>0),結果用str.format()方法保留小數點后6位數字輸出。
解題建議
將分子和分母分開考慮,剩下的計算就是找規律的問題
n = int(input())
a = 1
#用來存放上一個數的分母
b = 1
#用來存放下一個數的分母
s = 1
#用來存放求和的數據,且我們將數列第一項單獨分出來
for i in range(1,n):
a, b = b, a+b
#保存上一項的分母,計算下一項的分母
s = s + ((-1) ** i) * i / b
print("{:.6f}".format(s))
注意點
str.format()