斐波那契数列
题目描述
斐波那契数列是指这样的数列:数列的第一个和第二个数都为 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<iostream>
#include<iomanip>
using namespace std;
//定义函数
int F(int a)
{
int x1=1,x2=1,f;
//大于2的时候
if(a>2)
{
//记得循环的时候减去2,因为要少两次,第一位和第二位都是1,且初始要加
for(int i=0;i<a-2;i++)
{
f=x1+x2;
x1=x2;
x2=f;
}
}
//不大于2的时候,即1或者2的时候
else f=1;
return f;
}
//调用函数比较方便
int main()
{
//输入个数,要求的
int n;
cin>>n;
//循环输入n个数,求解位数的斐波那契数值
for (int i=0;i<n;i++)
{
int x;
cin>>x;
//调用F函数求解
cout<<F(x)<<endl;
}
return 0;
}
结果: