【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

 

posted @ 2020-08-06 20:59  DJames23  阅读(1172)  评论(0编辑  收藏  举报