编写一个Java程序分别用do-while和for循环计算1+1/2!+1/3!+1/4!… … 的前20项和。
时间: 2024-10-20 07:18:58 浏览: 31
第三次实验记录1
在Java中,我们可以创建一个程序来计算1+1/2!+1/3!+...+1/n!的前20项和,其中n=20。这里我们分别使用`do-while`和`for`循环来实现。
使用`do-while`循环:
```java
public class FactorialSum {
public static void main(String[] args) {
double sum = 1.0;
int n = 1;
do {
sum += 1 / factorial(n);
n++;
} while (n <= 20);
System.out.printf("前20项和为: %.2f", sum);
}
// 计算阶乘
private static long factorial(int num) {
long fact = 1;
for (int i = 1; i <= num; i++) {
fact *= i;
}
return fact;
}
}
```
使用`for`循环:
```java
public class FactorialSumFor {
public static void main(String[] args) {
double sum = 1.0;
for (int i = 1; i <= 20; i++) {
sum += 1 / factorial(i);
}
System.out.printf("前20项和为: %.2f", sum);
}
// 同样是计算阶乘
private static long factorial(int num) {
long fact = 1;
for (int i = 1; i <= num; i++) {
fact *= i;
}
return fact;
}
}
```
在这两个例子中,我们都先初始化了总和为1,并通过递增`n`来迭代每一项。然后,我们计算每一项的倒数(1/factorial(n)),并将它加到总和上。
阅读全文