PTA求n的阶乘java
时间: 2025-04-29 22:46:40 浏览: 31
### 计算n的阶乘方法
为了计算给定整数`n`的阶乘,在Java中可以采用递归或者迭代的方式。下面展示的是基于递归方式实现的代码片段:
```java
public class FactorialCalculation {
/**
* 使用递归算法计算阶乘.
*
* @param x 输入正整数
* @return 返回x的阶乘结果
*/
static int fact(int x) {
if (x == 1 || x == 0){
return 1;
}
else{
return x * fact(x - 1);
}
}
}
```
上述代码定义了一个名为`fact`的方法用于接收一个参数`x`并返回其对应的阶乘值[^1]。
对于非负整数而言,当输入为0或1时直接返回1作为基线条件;其他情况下则通过不断减少当前数值直到达到终止条件为止来进行累乘操作从而得出最终的结果。
如果希望使用更高效的非递归版本,则可以通过循环结构完成相同的功能如下所示:
```java
public class IterativeFactorial {
/**
* 非递归方式计算阶乘.
*
* @param number 正整数
* @return number的阶乘
*/
public static long calculateIteratively(int number) {
if(number < 0){
throw new IllegalArgumentException("Number must be non-negative.");
}
long result = 1L;
for (int i = 2; i <= number ; ++i) {
result *= i;
}
return result;
}
}
```
此段代码提供了一种不依赖于递归来解决问题的选择,并且能够处理更大的数值范围而不会遇到栈溢出的风险。
阅读全文
相关推荐














