例一:大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。(n<=39)
經典的遞迴應用,注意考慮周全,當傳入的n的值為0或者為1的時候,返回的數值是多少
`public
class
solution
}`
public
class
solution
else
}}
例三:我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?
注意多種情況的考慮,例如當兩行時,是有兩種情況進行填充的
public
class
solution
}
總結:遞迴在演算法題中應用並不少(本人剛做兩天題目:給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方演算法),但容易超出記憶體限制,所以「搬磚」時候遞迴的使用相對來說會少很多,例如我昨天刷乙個道乙個double型別的int次冪題的時候,剛開始想到的就是用遞迴,但是造成了爆棧
public
class
solution
}
敲黑板:做演算法題一定要注意,使用者輸入的特殊情況,即為0時,亦或者這為1時,要進行乙個if判斷,嚴謹性,嚴謹性
演算法題 遞迴
1.遞迴求和1 2 3 n 思想 f 1 1 f 2 f 1 2 f 3 f 2 3 f n f n 1 n def add n if n 1 return 1else return add n 1 n print add 100 結果 5050 2.遞迴求n n n 1 n 2 1 n 0 f 1...
遞迴演算法簡單題
最大公約數 題目內容 輸入兩個整數m,n,用遞迴演算法實現計算兩個數的最大公約數。輸入格式 輸入兩個整數m,n 輸出格式 最大公約數 輸入樣例 12,40 回車 輸出樣例 4 回車 時間限制 500ms記憶體限制 32000kb 理解最大公約數演算法!include int n intm void ...
演算法歸納(一)
1 給定乙個陣列arr,和乙個數num,請把小於等於num的數放在陣列的左邊,大於num的數放在陣列的右邊。要求額外空間複雜度o 1 時間複雜度o n public class demo1 5 public static void sort int arr,int num print arr pub...