走楼梯

题目描述:

有N级台阶,上楼可以一步上一阶,也可以一步上二阶。编一递归程序,计算共有多少种不同走法?

 

输入:

N≤40

 

输出:

答案

 

样例输入:

3

 

样例输出:

3

 

这道题严格意义上说应该不是一道DP题,而就是一个简单的递归,只要写出递归式就行。
解释一下递归式:对于当前的这个台阶,前一步有可能是走一步,也有可能是走两步上来的,所以f[i-1]+f[i-2];就是这个意思,下面给代码:

  #include<cstdio>
    #include<cstdlib>
    #include<iostream>
    using namespace std;
    int f[41], a;
    int main()
    {
        scanf("%d",&a);
        f[1]=1;
        f[2]=2;
        for(int i=3;i<=a;i++)
            f[i]=f[i-1]+f[i-2];
        printf("%d\n",f[a]);
        return 0;
    }

 

posted @ 2017-12-19 19:51  Zhoier  阅读(170)  评论(0编辑  收藏  举报