计算s=1+1/2!+1/3!
时间: 2023-11-18 21:04:02 浏览: 38
题目要求计算s=1+1/2!+1/3!+1/4!+ … +1/n!,其中n由终端输入。代码中已经定义了阶乘函数fac和求和函数sum,我们只需要在主函数中调用sum函数即可得到结果。sum函数中的循环变量i从1到n,每次将1/i!加到sum中,最后返回sum即可。
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int fac(int n) //阶乘函数
{
int i = 0;
int y = 1; //用来存返回值
if (0 == n || 1 == n) {
return 1;
} else {
for (i = 2; i <= n; i++) {
y *= i;
}
return y;
}
}
double sum(int n) //求和函数
{
int i = 0; //循环变量
double sum = 0; //和
for (i = 1; i <= n; i++) {
sum += 1.0 / fac(i);
}
return sum;
}
int main()
{
int n = 0;
printf("请输入n:>");
scanf("%d", &n);
printf("sum = %lf\n", sum(n));
system("pause");
return 0;
}
```