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;
}
原文地址:https://www.cnblogs.com/nanke/p/2121623.html