HDUOJ---大菲波数 大菲波数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8496 Accepted Submission(s): 2863
Problem Description
Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
Input
输入第一行为一个整数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
Source
代码:
简单的大数题.....
1 #include<iostream> 2 #define maxn 210 3 #define len 1001 4 using namespace std; 5 int arr[len][maxn+1]={{1},{1}}; 6 int main() 7 { 8 int n,i,j,s,c,t; 9 for(i=2;i<len;i++) 10 { 11 for(j=c=0;j<maxn;j++) 12 { 13 s=arr[i-1][j]+arr[i-2][j]+c; 14 arr[i][j]=s%10; 15 c=(s-arr[i][j])/10; 16 } 17 } 18 cin>>t; 19 while(t--) 20 { 21 cin>>n; 22 for(i=maxn;arr[n-1][i]==0;i--); 23 for(j=i;j>=0;j--) 24 { 25 cout<<arr[n-1][j]; 26 } 27 cout<<endl; 28 } 29 return 0; 30 }