9 递归的概述:
求5的阶乘。5! = 5*4*3*2*1;//120
递归:把大问题拆成很多的小问题,然后再把小问题拆成更多的小问题。
当我们把很多小问题解决了,那么小问题就解决了。随着小问题的解决,大问题也就解决了(在方法本省不断的调用方法自己)
递归注意事项:递归一定要有出口,内存溢出
递归次数不宜过多,内存溢出
默认注意事项(一定要有规律猜可以使用递归)
求一个数的阶乘:
Public static int jiecheng(int n){
if(n ==1){
Return 1;
}else{
Return n *jiecheng(n-1);
}
10 递归求5阶乘图解:
图解在附件
11 使用Debug分析递归算法执行流程:
方法调用方法本身,会在内存中生成很多歌自己的方法,知道找到出口之后,在挨个执行生成的多个方法,然后执行过的方法消失。(先生成多个相同的方法,在倒着执行多个相同的方法 )
12 斐波那契列数:
用递归的方法 算斐波那契列数的兔子数
Public static void main(String【】 args){
Int result = method(20);
}
Public static int method(int x){
If(x==1){
Return 1;
}else if(x==2){
Return 2;
}else{
Return method(x-1)+method(x-2);
}
}