C#算法大全-2-Algorithm Gossip: 费式数列

AlgorithmGossip: 费式数列

说明

Fibonacci1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子,三个月后有五只免子(小免子投入生产)……

如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生产,类似的道理也可以用于植物的生长,这就是Fibonacci数列,一般习惯称之为费氏数列,例如以下: 11 23581321345589……

解法

依说明,我们可以将费氏数列定义为以下:

fn = fn-1 + fn-2  if n > 1

fn = n if n= 0, 1

namespace 费式数列
{
    class Program
    {
        static void Fib(int n)
        {
            int [] a=new int [n+1];
            a[0] = 0;
            a[1] = 1;
            for (int i=2; i < n + 1; i++)
            {
                a[i] = a[i - 1] + a[i - 2];//第N个月的兔子数是N-1和N-2个月的兔子数的总和。因为N-1月的新生小兔子的数量是,N-2兔子的数量。
            }
            Console.WriteLine("第{0}个月的兔子数量为{1}",n,a[n]);
        }
        static void Main(string[] args)
        {
            Console.WriteLine("亲,几个月了!");
            int a = int.Parse(Console.ReadLine());
            Fib(a);
            Console.Read();
        }
    }
}

点赞