Java中阶乘的实现并单步跟踪
时间: 2024-09-17 22:09:56 浏览: 54
Factorial:计算阶乘的Java实现
在Java中,你可以使用递归或循环的方式来实现阶乘的计算。这里是递归版本的单步追踪示例,每一步都清晰地显示了变量的变化:
```java
public class Factorial {
private static void printSteps(int n, long factorial) {
System.out.println("当前n值: " + n + ", 阶乘结果: " + factorial);
}
public static long factorial(int n) {
// 单步追踪开始
printSteps(n, 1); // 初始化阶乘为1,n=0和1时阶乘为1
if (n == 0 || n == 1) { // 递归的基本情况
return factorial;
} else { // 递归部分
printSteps(n, n * factorial); // 计算当前n的阶乘,并打印步骤
return n * factorial; // 返回当前阶乘
}
}
public static void main(String[] args) {
int num = 5;
System.out.println("5! = " + factorial(num));
}
}
```
运行上述代码时,会看到每个递归步骤,比如5!的计算过程为:
1. 当前n值: 5, 阶乘结果: 1
2. 当前n值: 4, 阶乘结果: 4
3. 当前n值: 3, 阶乘结果: 12
4. 当前n值: 2, 阶乘结果: 24
5. 当前n值: 1, 阶乘结果: 24
6. 当前n值: 0, 阶乘结果: 1 (递归结束)
阅读全文