HDU1250 Hat's Fibonacci 大数运算

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1250



分析:大数运算,模拟加法即可。



实现代码如下:

#include <cstdio>
#include <cstring>
using namespace std;
int f[6][2501];
int main()
{
    int n,i,j,k;
    while(scanf("%d",&n)!=-1)
    {
        if(n==0)
        {
            printf("0\n");
            continue;
        }
        memset(f,0,sizeof(f));
        f[0][0]=1;
        f[1][0]=1;
        f[2][0]=1;
        f[3][0]=1;
        int d,c=0;
        for(i=4;i<=n;i++)
          for(j=0;j<=2500;j++)
          {
              d=f[(i-1)%5][j]+f[(i-2)%5][j]+f[(i-3)%5][j]+f[(i-4)%5][j]+c;


                  f[i%5][j]=d%10;
                  c=d/10;
          }
        for(i=2500;i>=0;i--)
          if(f[(n-1)%5][i]!=0)  break;
        for(;i>=0;i--)
          printf("%d",f[(n-1)%5][i]);
        printf("\n");
    }
    return 0;
}


你可能感兴趣的:(HDU1250 Hat's Fibonacci 大数运算)