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);
}
}