或者这样写:
斐波那契数列
题目描述
斐波那契数列是指这样的数列:数列的第一个和第二个数都为 1 1 1,接下来每个数都等于前面 2 2 2 个数之和。
给出一个正整数 a a a,要求斐波那契数列中第 a a a 个数是多少。
输入格式
第 1 1 1 行是测试数据的组数 n n n,后面跟着 n n n 行输入。每组测试数据占 1 1 1 行,包括一个正整数 a a a( 1 ≤ a ≤ 30 1 \le a \le 30 1≤a≤30)。
输出格式
输出有 n n n 行,每行输出对应一个输入。输出应是一个正整数,为斐波那契数列中第 a a a 个数的大小。
样例 #1
样例输入 #1
4
5
2
19
1
样例输出 #1
5
1
4181
1
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int a[n];
for(int i=0; i<n; i++) {
cin>>a[i];
}
int N=10000;
int res[N];
res[1]=1;
res[2]=1;
for(int i=3; i<N; i++) {
res[i]=res[i-1]+res[i-2];
}
for(int i=0; i<n; i++) {
cout<<res[a[i]]<<endl;
}
}