定义函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数fact( n)计算n! ,函数返回值类型是double。 sum= 2! 1 + 3! 2 +......+ (n+1)! n
时间: 2023-11-18 17:01:16 浏览: 117
下面是实现该功能的代码:
```c++
#include <iostream>
using namespace std;
double fact(int n) { // 计算阶乘
double res = 1;
for (int i = 1; i <= n; i++) {
res *= i;
}
return res;
}
int main() {
int n;
double sum = 0;
cin >> n;
for (int i = 2; i <= n+1; i++) {
sum += fact(i-1) / fact(i) * (i-1); // 计算累加和
}
cout << sum << endl;
return 0;
}
```
首先定义了一个计算阶乘的函数`fact()`,在`main()`函数中,输入正整数n,然后使用一个循环计算累加和,最后输出结果。其中,循环从2开始,因为第一项是2! 1,而不是1! 0。累加和的计算方式为:
$$
\sum_{i=2}^{n+1} \frac{(i-1)!}{i!} \times (i-1)
$$
即:
$$
2! \times \frac{1}{2} + 3! \times \frac{2}{6} + 4! \times \frac{3}{24} + \cdots + (n+1)! \times \frac{n}{(n+1)!}
$$
化简后得到:
$$
2 \times \frac{1}{1!} + 2 \times \frac{1}{2!} + 3 \times \frac{1}{2!} + 4 \times \frac{1}{3!} + \cdots + n \times \frac{1}{n!}
$$
这样就可以通过调用`fact()`函数来计算每一项的值,然后累加到`sum`中,最后输出即可。
阅读全文