问题描述
菲波那契数列是指这样的数列:数列的第一个和第二个数都为 1,接下来每个数都等于前面 2 个数之和。给出一个正整数 a,要求菲波那契数列中第 a 个数是多少。
输入
第 1 行是测试数据的组数 n,后面跟着 n 行输入。每组测试数据占 1 行,包括一个正整数 a(1 <= a <= 46)。
输出
n 行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第 a 个数的大小。
输入样列
4
5
2
19
1
输出样例
5
1
4181
1
算法实现
using System;
namespace Questions{
class Program{
public static void Main(string[] args){
int n = int.Parse(Console.ReadLine());
for (int i = 0; i < n; i++)
{
int a = int.Parse(Console.ReadLine());
if (a == 1 || a == 2)
{
Console.WriteLine(1);
continue;
}
int[] data = new int[a + 1];
data[1] = data[2] = 1;
for (int j = 3; j <= a; j++)
{
data[j] = data[j - 1] + data[j - 2];
}
Console.WriteLine(data[a]);
}
Console.ReadKey();
}
}
}