第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