2076 - 超超级台阶

有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级或三级,要走上第m级,共有多少走法?

注:规定从一级到一级有1种走法。

题目输入

输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=70), 表示楼梯的级数。

题目输出

对于每个测试实例,请输出不同走法的数量。

输入/输出样例

题目输入

3
1
2
3

题目输出

1
2
4

C语言解答

#include<stdio.h>
int main()
{
    long long int n,m[1000]= {1,1,2,4},i,x;
    scanf("%lld",&x);
    while(x--)
    {
        scanf("%lld",&n);
        if(n>3)
            for(i=4; i<=n; i++)
            {
                m[i]=m[i-1]+m[i-2]+m[i-3];
            }
        printf("%lld\n",m[n]);
    }
    return 0;
}

C++解答

#include <iostream>
using namespace std;
int main()
{
    long long n, i, a[71]={0, 1, 2, 4};
    for (i=4; i<71; i++)
        a[i]=a[i-1]+a[i-2]+a[i-3];
    cin>>n;
    while (n--)
    {
        cin>>i;
        cout<<a[i]<<endl;
    }
    return 0;
}

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题