1297 Children’s Queue

来源:互联网 发布:非农数据分析软件 编辑:程序博客网 时间:2024/05/18 22:12
 #include"iostream"
short a[1002][500];
void find()
{
    int i=5;
    int j=0;
    int d=0;
    while(i<1001)
    {
        j=1;
        while(j<=a[i-1][0])
        {
            if(a[i-1][j]+a[i-2][j]+a[i-4][j]+d>=10)
            {
                a[i][j]=(a[i-1][j]+a[i-2][j]+a[i-4][j]+d)%10;
                d=(a[i-1][j]+a[i-2][j]+a[i-4][j]+d)/10;
            }
            else
            {
                a[i][j]=a[i-1][j]+a[i-2][j]+a[i-4][j]+d;
                d=0;
            }
            j++;
        }
        while(d>=10)
        {
            a[i][j++]=d%10;
            d=d/10;
        }
        if(d>0)
        {
            a[i][j]=d;
        }
        else
        {
            j--;
        }
        a[i][0]=j;
        d=0;
        i++;
    }
}
int main()
{
    a[1][0]=1;
    a[2][0]=1;
    a[3][0]=1;
    a[4][0]=1;
    a[1][1]=1;
    a[2][1]=2;
    a[3][1]=4;
    a[4][1]=7;
    find();
    int n=0;
    while(scanf("%d",&n)!=EOF)
    {
        int i=a[n][0];
        while(i>0)
        {
            printf("%d",a[n][i--]);
        }
        printf("/n");
    }
}