HDU 1250 Hat's Fibonacci

#include <cstdio>
int num[10000][260]={0};
int main(){
   int i,j,n;
   num[1][0]=1;
   num[2][0]=1;
   num[3][0]=1;
   num[4][0]=1;
   for(i=5;i<10000;i++)
    {
       for(j=0;j<260;j++)
           num[i][j]=num[i-1][j]+num[i-2][j]+num[i-3][j]+num[i-4][j];
       for(j=0;j<259;j++)
           if(num[i][j]>100000000)
           {
               num[i][j+1]+=num[i][j]/100000000;
                num[i][j]%=100000000;
           }
    }
   while(scanf("%d",&n)!=EOF)
    {
       for(i=259;i>0;i--)
       if(num[n][i]!=0) break;
       printf("%d",num[n][i]);
       for(j=i-1;j>=0;j--)
       printf("%08d",num[n][j]);
       printf("\n");
    }
   return 0;
}

 

注意:“%08d”:控位

  

posted @ 2014-01-18 15:51  forever97  阅读(121)  评论(0编辑  收藏  举报