编程计算1-1/2!+1/3!-1/4!十+1/19!-1/20!的和。(参考运行结果:0.632121) 【提醒:20!=2432902008176640000】 /*double类型的有效数字是1
时间: 2024-01-27 11:04:46 浏览: 21
以下是C++代码实现计算1-1/2!+1/3!-1/4!十+1/19!-1/20!的和:
```c++
#include <iostream>
using namespace std;
double Factor(int n) //计算n的阶乘
{
double result = 1;
for (int i = 1; i <= n; i += 1) {
result *= i;
}
return result;
}
int main() {
double sum = 0;
for (int i = 1; i <= 20; i++) {
if (i % 2 == 0) {
sum -= 1 / Factor(i);
} else {
sum += 1 / Factor(i);
}
}
cout << "sum = " << sum << endl;
return 0;
}
```
运行结果为:0.632121
相关问题
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
两种方法得到的结果是一样的。