HDU 1297 Children’s Queue

#include <stdio.h>    
int a[1001][101]={0};
int main()
{  
    int n,i,j,k=0;
	a[0][1]=a[1][1]=1;
	a[2][1]=2;
	a[3][1]=4;
    for ( i=4;i<1001;i++)
    {
		for (j=1;j<101;j++)
		{
			a[i][j]+=a[i-1][j]+a[i-2][j]+a[i-4][j];
			a[i][j+1]=a[i][j]/10000000;
			a[i][j]%=10000000;
		}       
    }
    while(~scanf("%d",&n))
	{
		j=100;//勿忘
        while(!a[n][j]) j--;
        printf("%d",a[n][j--]);
		for (;j>0;j--)
		{
			printf("%07d",a[n][j]);
		}
		printf("\n");
	}
    return 0;  
} 
简单的递推加大数问题    

你可能感兴趣的:(HDU 1297 Children’s Queue)