hdu 1250 Hat's Fibonacci
哈,原来大数用整型数组模拟更快,更容易用呀
一个位可以保存大数中的四个位甚至更多,而且效率极高,看完这方面的资料,真是后知后觉啊,自己写了一下代码,确实好写很多
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int res[7500][670],len[7500];
void init()
{
res[1][0]=1;len[1]=1;
res[2][0]=1;len[2]=1;
res[3][0]=1;len[3]=1;
res[4][0]=1;len[4]=1;
int k=0,j;
for(int i=5;i<7450;i++)
{
k=0;
for(j=0;j<len[i-1];j++)
{
k+=res[i-1][j]+res[i-2][j]+res[i-3][j]+res[i-4][j];
res[i][j]=k%10000;
k/=10000;
}
while(k)
{
res[i][j++]=k%10000;
k/=10000;
}
len[i]=j;
}
}
int main()
{
int n;
init();
while(scanf("%d",&n)==1)
{
int i=len[n]-1;
printf("%d",res[n][i--]);
//printf("\n%d\n",i);
for(;i>=0;i--)
printf("%04d",res[n][i]);
printf("\n");
}
return 0;
}

浙公网安备 33010602011771号