1,递归介绍
【1】概念
-
递归,就是在运行的过程中调用自己。
【2】利弊
-
递归的弊端:不能调用次数过多,容易导致栈内存溢出
-
递归的好处:不用知道循环次数
【3】注意事项
-
构造方法不能使用递归调用,会不断调用子子孙孙无穷无尽。
-
递归调用不一定必须有返回值。
2,实现步骤
【1】需求5 * 4 * 3 * 2 * 1
-
for循环来做5的阶层。
public static void main(String[] args) {
int result = 1;
for(int i = 1; i <= 5; i++) {
result = result * i;
}
System.out.println(result);
}
【2】递归调用5 * 4 * 3 * 2 * 1
5 * fun(4)(代表4!)
4 * fun(3)(代表3!)
3 * fun(2)(代表2!)
2 * fun(1)(代表1!)
-
实现代码
public static void main(String[] args) {
System.out.println(fun(6000));
}
public static int fun(int num) {
if(num == 1) {
return 1;
}else {
return num * fun(num - 1);
}
}
}
-
理解图,最后Fun(1)返回1,进行弹栈。其次Fun(2),Fun(3),Fun(4),Fun(5).main方法进行输出