天天看點

遞歸的概念,階乘, 斐波那契列數:

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

}

}