2. 用函数编写程序,求E=1+1/1!+1/2!+……+1/n!,要求最后一项的值小于10-4。
时间: 2023-07-16 11:17:24 浏览: 106
用C语言编程:用公式计算:e≈1+1/1!+1/2! …+1/n!,精度为10-6
5星 · 资源好评率100%
可以使用循环和递归两种方式来实现。下面给出两种实现方式:
1. 使用循环:
```python
def calculate_e(n):
e = 1.0
i = 1
factor = 1
while factor >= 1e-4:
factor /= i
e += factor
i += 1
if i > n:
break
return e
```
2. 使用递归:
```python
def calculate_factorial(n):
if n == 0:
return 1
else:
return n * calculate_factorial(n-1)
def calculate_e_recursive(n, factor):
if factor < 1e-4:
return 1
else:
return calculate_e_recursive(n+1, factor/n) + 1
def calculate_e(n):
factor = calculate_factorial(n)
return calculate_e_recursive(1, factor)
```
以上两种方式都可以得到相同的结果,即:
```python
calculate_e(10) # 输出2.7182818011463845
```
阅读全文