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
以下为AC代码
#include <iostream>
#include <string.h>
using namespace std;
void add_big_number(int a[],int b[],int& len) {
int c = 0;
int temp;
for(int i = 0; i < len; i++) {
temp = a[i];
a[i] = a[i] + b[i] + c;
c = a[i] / 10;
a[i] = a[i] % 10;
b[i] = temp;
}
if(c != 0) {
a[len] = c;
len++;
}
}
int main() {
int a[1000],b[1000];
int n;
int count;
cin >> count;
for(int i = 0; i<count; i++) {
cin>>n;
int len = 1;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
a[0] = 1;
b[0] = 1;
if(n > 2){
int s = 2;
while(s!=n) {
add_big_number(a,b,len);
s++;
}
}
for(int j = 0; j<len;j++){
cout<<a[len-1-j];
}
cout<<endl;
}
return 0;
}