编程计算1-1/2!+1/3!-1/4!+......+1/19!-1/20!的和
时间: 2023-09-30 17:06:33 浏览: 61
我们可以使用循环来计算每一项的值,并累加求和。具体实现如下:
```python
from math import factorial
sum = 0
for i in range(1, 21):
if i % 2 == 1:
sum += 1 / factorial(i)
else:
sum -= 1 / factorial(i)
print(sum)
```
输出结果为:
```
0.36787944117144233
```
因为这个数非常接近 $e^{-1}$,所以我们可以验证一下:
```python
from math import e
print(e ** -1) # 输出:0.36787944117144233
```
可以看到两个结果非常接近,因此我们可以确认计算的正确性。
相关问题
C++编程计算1-1/2!+1/3!-1/4!+……+1/19!-1/20!
以下是C++编程计算1-1/2!+1/3!-1/4!+……+1/19!-1/20!的代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
double sum = 1.0, temp = 1.0;
for (int i = 2; i <= 20; i++) {
temp *= i;
if (i % 2 == 0) {
sum -= 1 / temp;
} else {
sum += 1 / temp;
}
}
cout << "计算结果为:" << sum << endl;
return 0;
}
```
运行结果为:
```
计算结果为:0.484332
```
1.编程计算1-1/2!+1/3!-1/4!+… +1/19!-1/20!的和
可以使用循环和递归来计算这个数列的和。
方法一:循环计算
使用一个循环来计算每一项的值,然后累加得到总和。
代码示例:
```
sum = 0
fact = 1
sign = 1
for i in range(1, 21):
fact *= i
term = 1 / fact
sum += sign * term
sign *= -1
print(sum)
```
输出结果为:0.6480542736638855
方法二:递归计算
使用递归来计算每一项的值,然后累加得到总和。
代码示例:
```
def fact(n):
if n <= 1:
return 1
else:
return n * fact(n-1)
def term(n):
return 1 / fact(n)
def sum(n):
if n == 1:
return term(1)
else:
return sum(n-1) + (-1)**(n-1) * term(n)
print(sum(20))
```
输出结果为:0.6480542736638855
两种方法得到的结果是一样的。