求误差小于输入值的e的近似值
自然常数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
思路:
注意是前i+1项的和与前i项的和之差控制循环。(谢谢下面评论的朋友提醒)
代码如下:
e = float(input())
a = 1
i = 2
t = 2
b = 1 / t
sum = 1 + 1
e1 = 1
e2 = sum
while e2 - e1 >= e:
e1 = e2
a = b
sum = sum + a
e2 = sum
i = i + 1
t = t * i
b = 1 / t
print('{:.6f}'.format(sum))