先說一下遞迴的作用:1.替代多重迴圈
2.解決本來就是遞迴形式定義的問題
3.將問題分解為規模更小的子問題進行求解
這裡是將問題分解為規模更小的子問題進行求解
先考慮第一步怎麼做,根據第一步把問題分為幾大類,剩下的事情就變成乙個子問題,這個子問題可能是形式相同但規模更小,就可以寫出遞推式,再寫出邊界條件,就ok了๑乛◡乛๑
n級台階的走法:先走一級後,n-1級台階的走法+先走兩級後,n-2級台階的走法
f (n) = f (n-1)+f (n-2)
邊界條件:
n<0 0 或n=0 1 或n=1 1
n=0 0 n=1 1 n=2 2
#include #include using namespace std;
int f(int n)
int main()
return 0;
}
爬台階問題
跳台階問題 乙個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。在這個跳樓梯的題目中,每次可以跳1個台階或者2個台階。我們考慮,我們是如何跳到n這個台階的,一共有兩種方式,一種是從n 1台階跳乙個台階,另外一種是從 n 2跳2個台階,所以 f n f ...
3 頑猴爬台階
一天乙隻頑猴想要從山腳爬到山頂途中經過乙個有n個台階的階梯,但是這個猴子有個習慣,每一次只跳1步或3步。試問?猴子通過這個階梯有多少種不同的跳躍方式 輸入描述 輸入只有乙個這個數n 0 輸出描述 有多少種跳躍方式 例項 輸入 50 輸出 122106097 輸入 3 輸出2 檢視 import j ...
遞迴之台階問題
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。當n 1時,次數f n 1。當n 2時,次數f n 2。11或2 當n 2時,當前一步可以跳一級,也可以跳兩級,次數f n f n 1 f n 2 public int jumpfloor int number...