定义一个求整数阶乘的方法factorial(),输入一个数n,求出1!+2!+…+n!的和。求阶乘请用递归方法和迭代的方法分别实现。JAVA
时间: 2024-10-12 10:05:23 浏览: 22
在Java中,你可以使用递归和循环两种方式来定义求阶乘的`factorial()`函数。以下是递归和迭代两种方法实现求和1! + 2! + ... + n! 的示例:
**递归方法:**
```java
public class FactorialSum {
public static long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
public static long sumOfFactorials(int n) {
long sum = 0;
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
return sum;
}
public static void main(String[] args) {
int n = 5; // 测试用例
long result = sumOfFactorials(n);
System.out.println("1! + 2! + ... + " + n + "! = " + result);
}
}
```
**迭代方法:**
```java
public class IterativeFactorialSum {
public static long factorial(int n) {
long fact = 1;
for (int i = 1; i <= n; i++) {
fact *= i;
}
return fact;
}
public static long sumOfFactorials(int n) {
long sum = 0;
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
return sum;
}
public static void main(String[] args) {
int n = 5; // 测试用例
long result = sumOfFactorials(n);
System.out.println("1! + 2! + ... + " + n + "! = " + result);
}
}
```
在这两个例子中,`factorial()`函数负责计算单个阶乘,而`sumOfFactorials()`函数则通过累加每个阶乘来计算它们的总和。