《演算法筆記》——hdu2041 簡單遞迴
阿新 • • 發佈:2018-12-17
題解:由題目可知,每次只能走一級或兩級。 因此從第一級走上第二級只能走一步,只有1種走法。 從第一級走上第三級,可以從第一級直接走兩步,也可以從第二級走一步。有2種走法走上第n級,可以從第n-1級走一步上來,也可以從第n-2級走兩步上來。即: f(2) = 1 f(3) = 2 f(n) = f(n-1) + f(n-2) (n > 3)
是一個斐波那契函式。
附上程式碼:
#include<iostream> using namespace std; int main() { int n,m,a[40]; while(cin>>m) { while(m--) { cin>>n; a[1]=0;a[2]=1;a[3]=2; for(int i = 4; i <= n; i++) { a[i] = a[i-1] + a[i-2]; } cout<<a[n]<<endl; } return 0; } }