題目:
假設(shè)你正在爬樓梯局蚀。需要 n 階你才能到達(dá)樓頂。
每次你可以爬 1 或 2 個臺階捞魁。你有多少種不同的方法可以爬到樓頂呢至会?
注意:給定 n 是一個正整數(shù)。
示例 1:
輸入: 2
輸出: 2
解釋: 有兩種方法可以爬到樓頂谱俭。
1. 1 階 + 1 階
2. 2 階
示例 2:
輸入: 3
輸出: 3
解釋: 有三種方法可以爬到樓頂奉件。
1. 1 階 + 1 階 + 1 階
2. 1 階 + 2 階
3. 2 階 + 1 階
題目分析:
嗯嗯,上樓梯問題昆著,兔子繁衍問題县貌,都是斐波拉契數(shù)列,沒啥好說的凑懂。
記住公式就行煤痕。
F(n) = F(n-1) + F(n-2)
其中
F(0) = 1,F(xiàn)(1) = 1
C++代碼如下:
class Solution {
public:
int climbStairs(int n) {
int s1 = 1;
int s2 = 1;
int t = s1;
for (int i = 0;i < n;++i) {
t = s2;
s2 = s1 +s2;
s1 = t;
}
return s1;
}
};