爬楼梯(动态规划)

问题描述:

假设你现在正在爬楼梯,楼梯有 n 级。每次你只能爬 1 级或者 2 级,那么你有多少种方法爬到楼梯的顶部? 

输入格式:

第一行输入一个整数 n(1≤n≤50),代表楼梯的级数。 

输出格式:

输出爬到楼梯顶部的方法总数。 

样例输入:  5

样例输出 : 8

/*假如有一层楼梯,那就只有一种方案。两层楼梯2种。3层楼梯时,先走一步,剩下两层我们算过了就是2;先走2步,剩下一层我们也算过了就是1!于是,3层有3种,4层有5种,5层有8种...
这就是斐波那契数列*/
//爬楼梯,斐波那契数列
#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[55];
    a[0]=0;
    a[1]=1;
    a[2]=2;
    for(int i=3;i<=n;i++){
        a[i]=a[i-1]+a[i-2];
    }
    cout<<a[n]<<endl;
    return 0;
}

 

posted @ 2018-09-11 16:27  无心小男  阅读(935)  评论(0编辑  收藏  举报