java遞歸

package day01;

/**

* 遞歸: 在功能(方法)中直接、間接調用了功能(方法)本身

*

* 老和尚講故事(){

* 1) 從前有座山

* 2) 山上有座廟

* 3) 廟裏有個老和尚

* 4) 如果老和尚累死了,就不講了! ( 遞歸結束條件)

* 5) 老和尚講故事()

* }

* y = 1+2+...+(n-1)+n = f(n) = f(n-1)+n 並且 f(1)=1

*

* 遞歸的優點

* 優點: 業務問題解決的很優雅 只需要解決一個層次,其他層次

* 問題就遞歸解決了。

* 遞歸的缺點

* 1) 大量消耗棧內存空間,不能進行過深層次的遞歸

* 否則 可能出現 棧溢出錯誤

* 使用遞歸的要點

* 1)不能過深的遞歸

* 2)不能發散遞歸

* 3)必須有結束條件

*/

public class Demo02 {

public static void main(String[] args) {

int n = 10000;//棧運行錯誤

int y = f(n);

System.out.println(y);

}

public static int f(int n){

if(n==1){

return 1;

}

return n + f(n-1);

}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章