用循环计算1 + 1/2! + 1/3! + 1/4! + ... +1/20! Java
时间: 2023-10-10 21:10:50 浏览: 241
这段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中用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));
}
}
```
从键盘输入一个数n,计算1/1!+1/2!+1/3!+1/4!+......+1/n!;例如:键盘输入5,计算:1/1!+1/2!+1/3!+1/4!+1/5!。用Java编写
你可以使用Java编写一个程序来计算从键盘输入的数n,然后计算1/1! + 1/2! + 1/3! + 1/4! + ... + 1/n!。下面是一个示例代码:
```java
import java.util.Scanner;
public class FactorialSum {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数n:");
int n = scanner.nextInt();
double sum = 0;
double factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
sum += 1 / factorial;
}
System.out.println("计算结果为:" + sum);
}
}
```
这段代码首先使用Scanner类获取从键盘输入的整数n。然后使用一个循环计算每个阶乘的倒数,并将它们累加到sum变量中。最后输出计算结果。
阅读全文