哈,原来大数用整型数组模拟更快,更容易用呀
一个位可以保存大数中的四个位甚至更多,而且效率极高,看完这方面的资料,真是后知后觉啊,自己写了一下代码,确实好写很多
#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;
}