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数值。
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
http://acm.hdu.edu.cn/showproblem.php?pid=1715
代码:
简单的大数题.....
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 }