第4章-13.求误差小于输入值的e的近似值 (20分)

自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。ei代表前i项求和。输入误差范围error,当
ei+1-ei<error,则表示e的近似值满足误差范围。

输入格式:

在一行输入误差范围。

输出格式:

在一行输出e的近似值(保留6位小数)。

输入样例1:

在这里给出一组输入。例如:

0.01
 

输出样例1:

在这里给出相应的输出。例如:

2.716667
 

输入样例2:

在这里给出一组输入。例如:

0.000000001
 

输出样例2:

在这里给出相应的输出。例如:

2.718282
 1 # 求误差小于输入值的e的近似值
 2 # Author: cnRick
 3 # Time  : 2020-3-29
 4 def factor(n):
 5     if n == 0:
 6         return 1.0
 7     result = 1.0
 8     for i in range(1,n+1):
 9         result *= i
10     return result
11 def getE(i):
12     result = 0
13     for x in range(0,i+1):
14         result = result + 1.0/factor(x)
15     return result
16 
17 error = float(input()) # 输入误差
18 cnt = 0
19 while True:
20     if (getE(cnt+1) - getE(cnt)) < error:
21         result = getE(cnt+1)
22         print("{:.6f}".format(result))
23         break
24     cnt += 1
25     
 

猜你喜欢

转载自www.cnblogs.com/dreamcoding/p/12592604.html