天天看點

案例------遞歸調用

1  什麼是遞歸:

實作某些功能不用遞歸可能要幾十行代碼,用遞歸可能幾行就搞定了,而且代碼清晰簡潔。一直以為遞歸也就是自己調用自己,有一個出口條件,讓他停止遞歸,退出函數,其實的特點并非就這些。

遞歸還有一個非常重要的特點:先進後出,跟棧類似,先遞進去的後遞出來。由于遞歸一直在自己調用自己,有時候我們很難清楚的看出,他的傳回值到底是哪個,隻要你了解了先進後出這個特點,你就會明白,第一次調用時,作為傳回值的那個變量的值就是遞歸函數的傳回值。先進後出嗎,他是第一個進來,也就是最後出去的那個,當然就是遞歸的傳回值啦。

1、1、2、3、5、8、13、21、34...... 求第30位數是多少,

用遞歸算法實作

解剖遞歸算法

猛一看這一串資料還真看不出來個啥,但是隻要你認真查找,就能看出規律。

從上面可以看出前兩個數相加得到第三個數。

public static int suanfa (int

i)

{

if(i>0)

if (1 >= i || i <= 2)

return 1;

if(i>2)

return suanfa(i-1) + suanfa(i-2);

}

else

return 0;

繼續閱讀