Fibonacci数列(一)

Fibonacci数列:斐波那契数列也叫兔子数列:

由来:

如果一对兔子每月能生一对小兔(一雄一雌),而每对小兔在牠出生後的第三个月裡,又能开始生一对小兔,假定在不发生死亡的情況下,由一对出生的小兔开始,50个月后会有多少对兔子?

在第一个月时,只有一对小兔子,过了一个月,那对兔子成熟
了,在第三个月时便生下一对小兔子,这时有兩对兔子。再过
多一个月,成熟的兔子再生一对小兔子,而另一对小兔子长大
,有三对小兔子。如此推算下去,我们便发現一个規律: 

 

时間(月)
初生兔子(对)
成熟兔子(对)
兔子總數(对)
1
1
0
1
2
0
1
1
3
1
1
2
4
1
2
3
5
2
3
5
6
3
5
8
7
5
8
13
8
8
13
21
9
13
21
34
10
21
34
55

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

由此可知,从第一个月开始以后每个月的兔子总數是:
1,1,2,3,5,8,13,21,34,55,89,144,233…

若把上述數列继续写下去,得到的數列便称为斐波那契數列。
數列中每個數便是前兩个數之和,而數列的最初兩個數都是1。
若设 F0=1, F1=1, F2=2, F3=3, F4=5, F5=8, F6=13... 
则:当n>1時,Fn+2 = Fn+1 + Fn,而 F0=F1=1。

 

1,1,2,3,5,8,13,21,34,55,89……F(n)=F(n-1)+F(n-2);

用C#代码实现的话就是:

   public static int FindNumber(int n)
         {
            int result;
            if(n==0||n==1)
            {
                result=1;
            }
            else
            {
                result = FindNumber(n - 1) + FindNumber(n - 2);
            }
            return result;
        }

  用Js代码实现:

  function (n){

    if(n<0) return ;

    if(n==0||n==1) return 1;

    return arguments.callee(n-1)+arguments.callee(n-2);//argumetns.callee:函数体内部对象相当于回调执行函数体本身

  }

posted @ 2013-12-09 00:04  Mr.liub  阅读(268)  评论(0编辑  收藏  举报