用Java输出1!+...+99!的阶乘
时间: 2024-10-11 08:05:31 浏览: 28
在Java中计算1到99的所有整数的阶乘并求和是一个常见的编程练习,通常我们会利用循环和递归的方式实现。由于阶乘的结果会非常大,直接计算可能会导致溢出,因此可以采用取模运算(%)来防止溢出,并通过字符串拼接的方式来存储结果。下面是一个简单的示例:
```java
public class Main {
public static void main(String[] args) {
long result = factorialSum(1, 99);
System.out.println("1! + ... + 99! 的和为:" + result);
}
// 使用递归计算阶乘
private static long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
// 计算1到n之间所有数的阶乘之和
private static long factorialSum(int start, int end) {
long sum = 0;
for (int i = start; i <= end; i++) {
long fact = factorial(i);
// 取模操作避免溢出
sum += fact % 1000000007; // 这里的1000000007是一个常数,选择一个较大的质数作为取模基数
}
return sum;
}
}
```
在这个程序中,我们对每个数i求阶乘并将其结果累加到sum上,同时在每次递归调用后都做一次取模操作。
阅读全文