java用for 循环计算 1+1/2!+1/3!+1/4!+...的前 20 项和
时间: 2024-10-19 19:05:24 浏览: 24
在Java中,你可以使用for循环和一些数学计算来实现这个任务。这里是一个示例代码片段,它使用了一个变量`sum`来存储累加和,并且利用了递归来计算阶乘:
```java
public class Main {
public static void main(String[] args) {
double sum = 0;
for (int i = 1; i <= 20; i++) {
double factorialTerm = 1.0 / factorial(i);
sum += factorialTerm;
}
System.out.println("前20项和为: " + sum);
}
// 计算阶乘的辅助函数
private static int factorial(int n) {
if (n == 0 || n == 1) return 1;
else return n * factorial(n - 1);
}
}
```
这段代码首先初始化`sum`为0,然后遍历从1到20的整数,对于每个数`i`,它计算`1/i!`并将其添加到总和中。`factorial`函数递归地计算给定数字的阶乘。
相关问题
Java中用for循环计算1+1/2!+1/3!+...+1/20!之和。
以下是两种Java中用for循环计算1+1/2!+1/3!+...+1/20!之和的例子:
1.使用while循环和变量计算阶乘和累加和
```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.使用while循环和递归函数计算阶乘和累加和
```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));
}
}
```
用循环计算1 + 1/2! + 1/3! + 1/4! + ... +1/20! Java
这段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);
}
}
```
阅读全文