用c语言使得1 + 1/2! +…+ 1/n! 输入正整数n,计算上式前n 项的和(保留 4 位小数)
时间: 2024-10-25 09:14:59 浏览: 45
统计给定整数M和N区间内素数的个数并对它们求和-C语言代码
在C语言中,你可以使用循环结构、递归以及浮点数运算来实现这个功能。以下是一个简单的程序示例:
```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 sequence_sum(int n) {
double sum = 1; // 初始化总和为1
for (int i = 2; i <= n; ++i) {
double term = 1.0 / factorial(i); // 计算当前项
sum += term; // 累加到总和
}
return round(sum * 10000) / 10000.0; // 四舍五入保留四位小数
}
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
if (n > 0) { // 检查输入是否有效
double result = sequence_sum(n);
printf("1 + 1/2! + ... + 1/%d! 的和保留4位小数为: %.4f\n", n, result);
} else {
printf("输入错误,n应为正整数。\n");
}
return 0;
}
```
当你运行这个程序并输入一个正整数n后,它会计算并打印出1到n阶乘分数的和,保留四位小数。
阅读全文