70 climbing-stairs
题目:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
思路:
即为斐波那契数列 1 2 3 5 8 13 ……
代码:
class Solution {
public:
int climbStairs(int n) {
if(n<=2)
return n;
int pre = 1, cur = 2, tmp;
for(int i=3;i<=n;i++)
{
tmp = pre;
pre = cur;
cur = tmp + pre;
}
return cur;
}
};