NOI 3525:上台阶

传送门

描述

楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。
输入
输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。
输出
每一行输出对应一行输入的结果,即为走法的数目。
样例输入

1
2
3
4
0

样例输出

1
2
4
7
#include <iostream>
#include <algorithm>
#include <string.h>

using namespace std;
int  dp[1000000];
int f(int x)
{
    
    
    if(dp[x] != 0)
    {
    
    
        return dp[x];
    }
    int res;
    if(x == 0)
        return 1;
    if(x < 0)
        return 0;
    if(x == 1)
        res = 1;
    else
        res = f(x-1)+f(x-3)+f(x-2);
    return dp[x] = res;
}
int main()
{
    
    
   int x;
   cin>>x;
   while (x != 0)
   {
    
    
       cout<<f(x)<<endl;
       cin>>x;
   }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_51344983/article/details/112845707
今日推荐