首页 > 代码库 > Climbing Stairs

Climbing Stairs

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?

完全是靠列举结果,推出迭代公式,发现就是斐波那契数列的形式,即当n>=3时,f(n)=f(n-1)+f(n-2)。

C++代码实现:

#include<iostream>using namespace std;class Solution {public:    int climbStairs(int n) {        if(n==0)            return 0;        if(n==1)            return 1;        if(n==2)            return 2;        int n1=1;        int n2=2;        int sum=0;        while(n>2)        {            sum=n1+n2;            n1=n2;            n2=sum;            n--;        }        return sum;    }};int main(){    int n=5;    Solution s;    cout<<s.climbStairs(n)<<endl;}

运行结果:

Climbing Stairs