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 < 3)
return n;
int nNumFor1 = 1, nNumFor2 = 2, nNumNow;
for (int nTemp = 0; nTemp < n - 2; nTemp++)
{
nNumNow = nNumFor1 + nNumFor2;
nNumFor1 = nNumFor2;
nNumFor2 = nNumNow;
}
return nNumNow;
}
};