问题描述:
数列的第一个和第二个数都为1,接下来每个数都是前两个数之和,给出一个正整数a,要求斐波那契数列中第a个数是多少?
提示:
1<=a<=30 数列的第一位和第二位无法算出,所以要给初值
c[1]=1;
c[2]=1;
输入格式:
第一行输入一个n。每组测试数据占一行,包括一个正整数a。
输出格式:
输出有n行,输出应该是一个正整数,为斐波那契数列中第a个数的大小
样例输入输出
输入:
4
5
2
19
1
输出:
5
1
4181
1
代码:
#include<iostream>
using namespace std;
int b[1005];
int main()
{
int n,a,i;
cin>>n;//输入一个n
b[1]=1;//给出数列第一的值
b[2]=1;//给出数列第二的值
for(i=3;i<=30;i++)//列举出所有的数
{
b[i]=b[i-1]+b[i-2];//每个数等于前两个数之和
}
for(i=1;i<=n;i++)
{
cin>>a;//输入a
cout<<b[a]<<endl;//输出斐波那契数列中第a个数的大小
}
return 0;
}