【杭電-oj】-1715-大菲波数


フェナンス波数
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 17173    Accepted Submission(s): 5706
Problem Description
Fibonacci数列は、次のように定義されています.
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3.
n番目のFibonacci値を計算します.
 
Input
第1の動作の整数Nを入力し、次にN動作の整数Pi(1<=Pi<=1000)を入力する.
 
Output
出力はN行であり,各動作に対応するf(Pi)である.
 
Sample Input
 
   
5 1 2 3 4 5
 

Sample Output
 
   
1 1 2 3 5
 
用二位数组计算大菲波数,要明白i,j分别表示的意义(i表示第几个数,j表示这个数的第几位)。以及开始的初始化和最后的输出也要注意怎么写。
#include
int main()
{
	int t,n,k;
	int f[1001][211]={0};			//      0 
	f[1][1]=1;
	f[2][1]=1;
	for(int i=3;i<=1000;i++)
	{
		for(int j=1;j<=220;j++)			//    ,i      ,j         ,
		{					//    j            
			f[i][j]+=f[i-1][j]+f[i-2][j];
			if(f[i][j]>9)
			{
				f[i][j]-=10;
				f[i][j+1]++;	
			}	
		}	
	}	
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		k=220;
		for( ;f[n][k]==0;k--);			//         ,      f[n][k]!=0,      ,     
		for( ;k>=1;k--)					//                ,          ,          
			printf("%d",f[n][k]);
		printf("
"); } return 0; }