C语言求 1+ 1/2! + 1/3! + … + 1/n!的值,要求1/n!的值不大于10的负8次方
时间: 2023-11-19 21:05:50 浏览: 84
以下是C语言求1+1/2!+1/3!+...+1/n!的值,要求1/n!的值不大于10的负8次方的代码和解释:
```c
#include <stdio.h>
void main() {
int i, n;
double sum = 1, t = 1;
printf("输入n:\n");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
t = t * i;
sum = sum + 1 / t;
if (1 / t < 1e-8) { // 判断1/n!是否小于10的负8次方
break;
}
}
printf("e=%lf", sum);
}
```
解释:
1. 首先定义变量i、n、sum和t,其中i表示循环计数器,n表示用户输入的n,sum表示最终的和,t表示每一项的分母。
2. 用户输入n。
3. 进入for循环,从1到n依次计算每一项的分母和分子,并将其加到sum中。
4. 判断1/n!是否小于10的负8次方,如果是,则跳出循环。
5. 输出最终的和sum。
相关问题
C语言求1+1/2!+…1/n!
是C语言求1+1/2!+…1/n!的代码:
```c
#include <stdio.h>
int main() {
int n, i;
double sum = 1, factorial = 1;
scanf("%d", &n);
for (i = 2; i <= n; i++) {
factorial *= i;
sum += 1.0 / factorial;
}
printf("%.6f", sum);
return 0;
}
```
解释:
1. 首先定义变量n表示要求的项数,i表示循环计数器,sum表示求和结果,factorial表示阶乘的值。
2. 从2开始循环,每次循环计算i的阶乘并将其加入到sum中。
3. 最后输出sum的值即可。
用C语言求1+1/2!+……+1/n!
以下是用C语言求解1+1/2!+……+1/n!的代码:
```
#include <stdio.h>
int main() {
int n, i;
double sum = 1, fact = 1;
printf("请输入n:");
scanf("%d", &n);
for (i = 2; i <= n; i++) {
fact *= i;
sum += 1.0 / fact;
}
printf("1+1/2!+...+1/%d!的值为:%lf", n, sum);
return 0;
}
```
这里使用了一个循环来计算1+1/2!+……+1/n!的值,其中变量`fact`表示阶乘,初始值为1,每次循环将它乘以当前的数`i`,然后用`1.0/fact`计算当前项的值并加到`sum`中。最后,输出结果即可。