大数模板

来源:互联网 发布:fc2破解版安卓域名设置 编辑:程序博客网 时间:2024/05/16 16:59
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int Max = 7500;int ans[Max][750],len[Max]; void init(){    int i,j;    memset(ans,0,sizeof(ans));    memset(len,0,sizeof(len));    ans[1][0] = 1,len[1] = 1;    ans[2][0] = 1,len[2] = 1;    ans[3][0] = 1,len[3] = 1;    ans[4][0] = 1,len[4] = 1;    int t;    for( i = 5; i < Max; i ++ )    {        len[i] = len[i-1];        for( j = 0; j < len[i-1]; j ++ )        {            t = ans[i-1][j] + ans[i-2][j] + ans[i-3][j] + ans[i-4][j];            ans[i][j] += t % 10000;            t /= 10000;            if(t)            {                ans[i][j+1] += t;                len[i] = max(len[i],j+2);            }        }    }}  int main(){    int n,i;    init();    while(~scanf("%d",&n))    {        i=len[n]-1;          printf("%d",ans[n][i--]);          for(;i>=0;i--)              printf("%04d",ans[n][i]);          printf("\n");      }    return 0;}