C#题库

0032-菲波那契数列

2017-03-25  本文已影响8人  指尖极光

问题描述

菲波那契数列是指这样的数列:数列的第一个和第二个数都为 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();
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读