分别用 do - while 和 for 循环计算1+1/2!+1/3!+1/4!十...的前20项之和
时间: 2023-09-08 17:04:14 浏览: 173
### 回答1:
可以使用以下代码来计算:
使用 do-while 循环:
#include <stdio.h>
#include <math.h>
int main() {
int i = 1;
double sum = , term;
do {
term = 1. / (i * (i + 1) * (i + 2));
sum += term;
i++;
} while (i <= 20);
printf("前20项之和为:%lf", sum);
return ;
}
使用 for 循环:
#include <stdio.h>
#include <math.h>
int main() {
double sum = , term;
for (int i = 1; i <= 20; i++) {
term = 1. / (i * (i + 1) * (i + 2));
sum += term;
}
printf("前20项之和为:%lf", sum);
return ;
}
### 回答2:
使用do-while循环计算前20项的和:
首先,我们定义一个变量sum来表示求和结果,并将sum初始值设为0。
然后设置一个计数器变量i,并将其初始值设为1。
进入do-while循环,首先计算i的阶乘,即factorial,可以使用一个变量temp来不断累积i的值并计算阶乘。
然后将1/factorial加到sum中,即将1/factorial累加到sum中。
接着将i加1,继续下一次循环。
执行do-while循环直到i的值达到20,完成计算前20项的和。
最后输出sum的值,即为所求的结果。
使用for循环计算前20项的和:
在for循环中,我们同样需要定义一个变量sum来表示求和结果,并将sum初始值设为0。
设置一个计数器变量i,并将其使用for循环的初始化表达式设为1,判断条件表达式设为i<=20,增量表达式设为i++,控制循环的执行次数。
在每次循环中,我们先计算i的阶乘,即factorial,使用一个变量temp来不断累积i的值并计算阶乘。
然后将1/factorial加到sum中,即将1/factorial累加到sum中。
当循环执行20次后,结束循环,最后输出sum的值,即为所求的结果。
两种循环方式均可以得到相同的结果,即1 1/2! 1/3! 1/4!十...的前20项之和。
### 回答3:
使用do-while循环计算1 + 1/2! + 1/3! + 1/4! + ... 的前20项之和,可以按照以下步骤进行操作:
1. 初始化相关变量:定义变量sum表示总和,n表示项数,fact表示阶乘;
2. 使用do-while循环从n=1开始,执行20次循环;
3. 在循环中,计算当前项的阶乘fact,将1/fact加到sum中,然后将n增加1;
4. 输出结果sum。
以下是使用do-while循环计算的示例代码:
```java
public class DoWhileSum {
public static void main(String[] args) {
int n = 1;
double sum = 1;
double fact = 1;
do {
for (int i = 1; i <= n; i++) {
fact *= i;
}
sum += 1 / fact;
n++;
} while (n <= 20);
System.out.println("前20项和为:" + sum);
}
}
```
使用for循环计算1 + 1/2! + 1/3! + 1/4! + ... 的前20项之和,可以按照以下步骤进行操作:
1. 初始化相关变量:定义变量sum表示总和;
2. 使用for循环从n=1开始,执行20次循环;
3. 在循环中,计算当前项的阶乘fact,将1/fact加到sum中;
4. 输出结果sum。
以下是使用for循环计算的示例代码:
```java
public class ForSum {
public static void main(String[] args) {
double sum = 1;
for (int n = 2; n <= 20; n++) {
double fact = 1;
for (int i = 1; i <= n; i++) {
fact *= i;
}
sum += 1 / fact;
}
System.out.println("前20项和为:" + sum);
}
}
```
无论是使用do-while循环还是for循环,计算的结果都将是前20项和。
阅读全文