假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?
**注意:**給定 n 是一個正整數。
其實這個問題,可以用遞歸和動態規劃解決,下面分別是兩種實現方式:
- C++代碼:
int stairs(int n){ if(n==1||n==0||n==2){ return n; } return stairs(n-1)+stairs(n-2); }
int stairs(int n){ if(n==1||n==0||n==2){ return n; } else{ int a=1; int b=2; int temp=0; for(int i=3;i<n+1;i++){ temp=a+b; a=b; b=temp; } return temp; } }