1 public class a {
2 public static void main(String[] args) {
3 int reusult = recursion(5);
4 System.out.println(reusult);
5 }
6 public static int recursion(int num){
7 //特殊情况就是1和0阶乘都是1;
8 if (num ==0 || num ==1){
9 return 1;
10 }
11 //这个地方用到了递归
12 //什么叫递归,就是方法调用本身
13 //递归分直接递归,和间接递归
14 //直接递归就是我调用a方法,a方法调用本身
15 //间接递归就是我调用a方法,a方法调用b方法,b方法回来调用a方法
16 //递归如果终止条件,那么控制台会输出User
17 //.StackOverflowError
18 //这是栈溢出
19 //代码流程是这样
20 //r(3)=r(3-1)*3 =6 ,那么结果就是6
21 //r(2)=(2-1)*2 =2
22 //(1)=1;
23 return recursion(num -1)*num;
24 }
25 }