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; }