方法的递归调用
理解:方法调用方法自身
注意:
1.找到规律(什么时候调用自己)
2.找到出口(什么时候跳出自我调用,否则会成为一个死循环状态)
注意:因为每调用一次方法,栈内存会开辟一块空间,不找到出口,会导致栈内存溢出
案例:
/**需求:设计一个方法,传入int类型的数字n,求n的阶乘
分析:
5! = 1*2*3*4*5 -> 5! = 4! * 5
4! = 1*2*3*4 -> 4! = 3! * 4
3! = 1*2*3 -> 3! = 2! * 3
2! = 1*2 -> 2! = 1! * 2
1! = 1 -> 1! = 1
找规律:n! = (n-1)! * n;
找出口:1! = 1
*/
public class Test02{
public static void main(String [] args){
System.out.println(method(5));
}
//设计方法
public static int method(int n){ //传入参数5
if(n==1){ //这里就是出口,一旦n到达1,就开始返回数据(回溯)
return 1;
}else{
return method(n-1)*n; //如果当前n不到1,那就去求n-1的阶乘,再乘以n就得到当前n的阶乘
}
}
}