【2020京东笔试题】求数列前n项和--Python实现
题目:
求以下数列的和:
f(n)=1/5-1/10+1/15-1/20+1/25-.......+1/(5*(2*n-1))-1/(5*2*n)
输入描述:单组输入。每组数据一个输入,每个输入一行,输入n。(n<=100)
输出描述:输出数列前n项的和,结果四舍五入保留四位小数。
样例输入:1
样例输出:0.1000
分析:
可以看出数列通项就是最后两项,n从1开始,最大为100.
Python代码如下:
1 def monofunction(n): 2 f = 1/(5*(2*n-1))-1/(5*2*n) 3 return f 4 5 6 def Fun(k): 7 sumvalue = 0 8 for i in range(k): 9 f = monofunction(i+1) 10 sumvalue += f 11 return sumvalue 12 13 14 if __name__ == "__main__": 15 while True: 16 print("请输入1~100之间的整数,求其前n项和") 17 k = int(input()) 18 if k <=100 and k>0: 19 res = Fun(k) 20 print("{:.4f}".format(res)) 21 # print("前%d项和为%.4f"%(k,res)) 22 else: 23 print("超出范围")
结果:
1 3 2 0.1233