c语言求和s=1+1/2!+1/3!…1/n!
时间: 2024-12-10 16:55:16 浏览: 6
计算 S=1!+2!+3!+...+N!。
在C语言中计算级数 `S = 1 + 1/2! + 1/3! + ... + 1/n!`,通常会涉及到递归和浮点数运算。这里是一个简单的示例程序,它使用了递归函数来计算阶乘,并将每个项加到总和中:
```c
#include <stdio.h>
#include <math.h>
// 计算阶乘
double factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
// 求和函数
double sum_series(int n) {
double total = 1.0; // 初始值设为1
for (int i = 2; i <= n; i++) {
double term = 1 / factorial(i); // 当前项
total += term; // 加入总和
}
return total;
}
int main() {
int n;
printf("请输入序列的项数n: ");
scanf("%d", &n);
double result = sum_series(n);
printf("1 + 1/2! + 1/3! + ... + 1/%d! = %.6f\n", n, result);
return 0;
}
```
在这个程序中,首先定义了一个递归函数`factorial`用于计算阶乘,然后在`sum_series`函数里计算和。注意,由于涉及浮点数除法,结果可能会因为精度原因略有误差。
阅读全文