Fibonacci数
时间限制:3000 ms | 内存限制:65535 KB
难度:1
输入
第一行是一个整数m(m<5)表示共有m组测试数据
每次测试数据只有一行,且只有一个整形数n(n<20)
输出
对每组输入n,输出第n个Fibonacci数
样例输入
3 1 3 5
样例输出
1 2 5
描述
无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为
F(n)=1 ...........(n=1或n=2)
F(n)=F(n-1)+F(n-2).....(n>2)
现要你来求第n个斐波那契数。(第1个、第二个都为1)
这道题很简单,但是中间还是有一个小插曲:我使用的数据类型是int,然后就会超出int的限制,从而会变成负数,之前还以为自己的函数写错了呢
#include <iostream>
using namespace std;
void Fibonacci(int *f)
{
f[0]=1;
f[1]=1;
for(int i=2;i<20;i++)
{
f[i]=f[i-1]+f[i-2];
}
}
int main()
{
int f[20],a[5],i;
Fibonacci(f);
int n;
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n;i++)
{
cout<<f[a[i]-1]<<endl;
}
return 0;
}