• 用C#实现有关兔子的斐波那契数列


    有一道面试题目:
    一对成熟的兔子每月繁殖一对小兔子,而每对小兔子三个月后就变成一对成熟的兔子.那么,从一对刚出生的兔子开始,一年后可变成多少对兔子??
    其实,这个题目咋一看比较难,但要是仔细分析的话,可以发现它就是我们数学史上一个非常经典的斐波那契数数列问题。
    其实说到斐波那契数数列,我们并不陌生,我记得在我读大一的时候的C语言课程上,老师就给我们讲了这个问题。比如很经典的 f(n)=f(n-1)+f(n-2),就是说当前数是由它的前2项数相加而得到的。
    当然,这个听说在生活上也特别的由名,最有名的或许就是我们常听到的,美学标准:黄金分割点。有兴趣的读者可以到百度上去看看。
    OK,我们先可以把每个月出生的兔子总数画出来,先看出规律来,应该这个问题就不难了!~
     

    月份

    兔子总数

    1

    1

    2

    1

    3

    2

    4

    3

    5

    5

    6

    8

    7

    13

    ……..

    通过上面表格的规律我们就可以很容易的得出代码如下,代码都比较简单,所以不做过多的解释。
    class Program
    {
    static void Main(string[] args)
    {
    Console.Write(
    "请输入一个数字:");
    int i =Convert.ToInt32( Console.ReadLine());
    Fibonacci(i);
    Console.ReadKey();
    }
    public static void Fibonacci(int num)
    {
    int number1 = 1, number2 = 1, sum = 0;
    if (num < 1)
    sum
    = 1;
    Console.WriteLine();
    Console.WriteLine(
    "第1个月,有{0}只",number1);
    Console.WriteLine(
    "第1个月,有{0}只", number2);
    for (int i = 3; i <= num; i++)
    {
    sum
    = number1 + number2;
    Console.WriteLine(
    "第{0}月,有{1}只",i,sum);
    number1
    = number2;
    number2
    = sum;
    }
    }
    }

    结果如下:

  • 相关阅读:
    离线安装SilverLight
    Singleton模式
    首次进入
    实现多层菜单(=_=!)(很傻又很土的办法)
    【转】Java中Split函数的用法技巧
    【转】来电显示
    DatePickerDialog
    Unable to resolve target 'android9'
    退出activity的另一种写法
    滚轮控件的定义和使用
  • 原文地址:https://www.cnblogs.com/damonlan/p/2074369.html
Copyright © 2020-2023  润新知