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#include<cstdio> #include<iostream> #include<string> using namespace std; string a[1005]; string jia(string a,string b) { while(a.size()<b.size()) { a='0'+a; } while(a.size()>b.size()) { b='0'+b; } a='0'+a; b='0'+b; for(int i=a.size()-1; i>=0; i--) { a[i]=a[i]+b[i]-'0'; if(a[i]>'9') { a[i]-=10; a[i-1]++; } } while(a.size()>1&&a[0]=='0') a.erase(0,1); return a; } int main() { int t,T=0,i; a[1]="1",a[2]="1"; for(i=3;i<=1000;i++) { a[i]=jia(a[i-1],a[i-2]); } cin >> t; while(t--) { int n; cin >> n; cout << a[n] << endl; } return 0; }