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;