用循环计算1 + 1/2! + 1/3! + 1/4! + ... +1/20! Java
时间: 2023-10-10 08:10:50 浏览: 136
这段Java代码用循环计算了1/1!到1/20!的和。在第一个引用中,代码中有一个错误,没有将变量s重置为1,导致结果错误。在第二个引用中,已经修复了这个错误。在第三个引用中,使用了递归来计算阶乘,通过递归调用JieChen方法来计算从1到20的阶乘结果。这种方法的时间复杂度较高,为O(n^2)。
Java代码如下:
```java
package java1;
public class sum {
// 运用递归用来计算从1到20分别的阶乘结果
public static int JieChen(int i) {
if (i == 1) {
return 1;
} else {
return (JieChen(i - 1) * i);
}
}
public static void main(String args[]) {
double sum = 0;
// 计算1/1!到1/20!的和
for (int i = 1; i <= 20; i++) {
int s;
// 用来计算i的阶乘
s = JieChen(i);
sum += 1.0 / s;
}
System.out.println(sum);
}
}
```
相关问题
java编程计算1+1/2!+...+1/20!
计算1+1/2!+...+1/20!可以使用循环结构和数学公式来实现。其中,1/2!表示1除以2的阶乘,即1/2,以此类推。以下是Java代码实现:
```
double sum = 0;
double factorial = 1;
for (int i = 1; i <= 20; i++) {
factorial *= i;
sum += 1 / factorial;
}
sum += 1; // 加上1
System.out.println("1+1/2!+...+1/20!等于:" + sum);
```
另外,也可以使用do-while循环来实现:
```
double sum = 0, factorial = 1;
int i = 1;
do {
factorial *= i;
sum += 1 / factorial;
i++;
} while (i <= 20);
sum += 1; // 加上1
System.out.println("1+1/2!+...+1/20!等于:" + sum);
```
Java中用while循环计算1+1/2!+1/3!+...+1/20!
以下是两种Java中用while循环计算1+1/2!+1/3!+...+1/20!的例子:
1. 使用单个变量计算阶乘:
```java
public static void main(String[] args) {
double n = 1, j = 1, sum = 0;
while(n <= 20){
j = j * n;
sum += 1 / j;
n++;
}
System.out.println(sum);
}
```
2. 使用递归函数计算阶乘:
```java
public static void main(String[] args) {
double n = 1, sum = 0;
while (n <= 20) {
sum += 1 / Factorial(n);
n++;
}
System.out.println(sum);
}
static double Factorial(double m) {
if (m == 1 || m == 0) {
return 1;
} else {
return (m * Factorial(m - 1));
}
}
```