游客 Signup | Login
中文 | En

2076 - 超超级台阶

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

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

Input

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

Output

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

Examples

Input

3
1
2
3

Output

1
2
4

Solution 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;
}

Solution 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;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题