You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
这题如果用递归, 超时了, 只能模拟了
class Solution {
public:
int climbStairs(int n) {
if(n==0)return 0;
if(n==1)return 1;
if(n==2)return 2;
int be = 1;
int aft = 2;
int i;
int sums;
for(i=3;i<=n;i++)
{
sums = aft + be;
be = aft;
aft = sums;
}
return sums;
}
};