【hdu - 1715 大菲波数(水题、、罪过)】

大菲波数

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6572    Accepted Submission(s): 2157


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
 

 

Recommend
lcy
 
 
 
 
 1 #include <iostream>
 2 #include <stdio.h>
 3 using namespace std;
 4 
 5 #define MAXN 1010
 6 
 7 class Number
 8 {
 9 public:
10     int* a;
11     int  iTop;
12     void setSize(int n);
13     void setValueSum(Number, Number);
14     void setTopValue();
15     void showValue();
16 };
17 
18 void Number::setSize(int n)
19 {
20     a = new int[n];
21     for (int i = 0; i < n; i++)
22     {
23         a[i] = 0;
24     }
25     iTop = n - 1;
26 }
27 
28 void Number::setValueSum(Number num1, Number num2)
29 {
30     for (int i = 0; i <= num2.iTop; i++)
31     {
32         a[i]  = num2.a[i];
33     }
34     for (int i = 0; i <= num1.iTop; i++)
35     {
36         a[i] += num1.a[i];
37     }
38     for (int i = 0; i <= iTop; i++)
39     {
40         a[i+1] += (a[i]/10);
41         a[i]   %= 10;
42     }
43 }
44 
45 void Number::setTopValue()
46 {
47     while (a[iTop] == 0)
48     {
49         iTop--;
50     }
51 }
52 
53 void Number::showValue()
54 {
55     for (int i = iTop; i >= 0; i--)
56     {
57         printf("%d", a[i]);
58     }
59     printf("\n");
60 }
61 
62 Number iMap[MAXN];
63 
64 void iMakeMap()
65 {
66     iMap[1].setSize(1);
67     iMap[1].a[0] = 1;
68     iMap[2].setSize(1);
69     iMap[2].a[0] = 1;
70 
71     for (int i = 3; i < MAXN; i++)
72     {
73         iMap[i].setSize(iMap[i-1].iTop+2);
74         iMap[i].setValueSum(iMap[i-1], iMap[i-2]);
75         iMap[i].setTopValue();
76     }
77 }
78 
79 int main()
80 {
81     iMakeMap();
82     int iT;
83     scanf("%d", &iT);
84     while (iT--)
85     {
86         int iIndex;
87         scanf("%d", &iIndex);
88         iMap[iIndex].showValue();
89     }
90     return 0;
91 }
92 
93 // end
94 // ism

 

 

posted @ 2012-08-03 09:24  ismdeep  阅读(202)  评论(0编辑  收藏  举报