编写一个函数计算s=1+1/2!+1/3!+....+1/n!。其中n的值由用户指定。
时间: 2023-09-30 07:13:06 浏览: 97
好的,以下是计算 `s` 的代码实现:
```c++
#include <stdio.h>
double sum(int n) { // 定义求和函数
double s = 0, factor = 1;
for (int i = 1; i <= n; i++) {
factor *= i; // 计算 i 的阶乘
s += 1 / factor; // 累加 1/i! 的值
}
return s;
}
int main() {
int n;
printf("Please input the value of n: ");
scanf("%d", &n);
double result = sum(n); // 调用求和函数
printf("The sum of 1+1/2!+1/3!+...+1/%d! is %lf\n", n, result);
return 0;
}
```
运行结果为:
```
Please input the value of n: 5
The sum of 1+1/2!+1/3!+...+1/5! is 1.716667
```
以上代码中,我们定义了一个求和函数 `sum`,它接受一个整数参数 `n`,并返回计算结果。在函数中,我们使用了一个循环来累加 `1/i!` 的值。循环变量 `i` 从 1 到 `n` 循环,每次计算 `i` 的阶乘,并将结果累加到变量 `s` 中。最后,函数返回 `s` 的值。
在主函数中,我们首先使用 `scanf` 函数从控制台中读取用户输入的 `n` 的值。然后,我们调用求和函数 `sum`,并将 `n` 作为参数传递进去。最后,我们使用 `printf` 将计算结果输出到控制台上。
阅读全文