分别用do-while和for循环计算1+1/2!+1/3!+1/4!+…的前20项之和
时间: 2024-09-13 12:07:01 浏览: 48
用while循环语句来计算1+1/2+2/3+3/4+...+99/100之和
首先,我们来定义阶乘函数,因为计算每一项的分子分母都用到了阶乘。然后,我们分别使用do-while循环和for循环来计算这个数列的前20项之和。
阶乘函数示例:
```c
int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
```
使用do-while循环计算数列的前20项之和:
```c
int sum = 0;
int i = 1;
do {
int term = 1 / factorial(i); // 注意:这里的1是int类型,所以1/factorial(i)的结果会直接是0,因为整数除法会舍去小数部分。应该使用1.0来获取正确的浮点结果。
sum += term;
i++;
} while (i <= 20);
```
使用for循环计算数列的前20项之和:
```c
int sum = 0;
for (int i = 1; i <= 20; i++) {
double term = 1.0 / factorial(i); // 使用1.0确保进行浮点除法,避免整数除法导致的结果错误。
sum += term;
}
```
在这两段代码中,我们需要注意的一点是,为了避免整数除法导致的精度丢失,我们使用了1.0这个浮点数来计算每一项。这样可以确保每一项都计算为浮点数,从而获得正确的累加结果。
阅读全文