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()