编写程序求1!+2! +3!+ … +20!的和的程序Java代码及详细注释
时间: 2024-11-12 10:33:20 浏览: 13
编写一个 Java 程序来计算从 1 到 20 的所有阶乘之和,我们可以使用递归的方式来实现。以下是详细的代码和注释:
```java
// 定义一个方法来计算阶乘,传入一个整数n
public static long factorial(int n) {
// 阶乘的基本情况是0和1的阶乘都是1
if (n == 0 || n == 1) {
return 1;
} else {
// 通过递归调用自身来计算n的阶乘,即 n * (n - 1)!
return n * factorial(n - 1);
}
}
// 主函数,计算并打印1到20的所有阶乘之和
public static void main(String[] args) {
int limit = 20; // 我们将计算到这个数的阶乘
long sum = 0; // 初始化阶乘之和
// 遍历从1到limit,累加每个数的阶乘
for (int i = 1; i <= limit; i++) {
sum += factorial(i); // 调用factorial方法并将结果累加到sum上
}
System.out.println("1! + 2! + ... + " + limit + "! 的和是:" + sum);
}
```
在这个程序中,`factorial()` 函数是一个递归函数,它负责计算输入整数 `n` 的阶乘。在主函数 `main()` 中,我们遍历了从 1 到 20 的所有数字,并调用 `factorial()` 来计算它们的阶乘,然后将结果累加到总和 `sum` 上。
注意:由于阶乘的增长非常快,对于较大的数值,可能会导致溢出,因此实际编程时需要注意处理这种情况。
阅读全文