【Java】求100以內的斐波那契數列


斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

這個數列從第3項開始,每一項都等於前兩項之和。

來歷

斐波那契數列又因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,故又稱為“兔子數列”。
一般而言,兔子在出生兩個月后,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔子都不死,那么一年以后可以繁殖多少對兔子?
我們不妨拿新出生的一對小兔子分析一下:
第一個月小兔子沒有繁殖能力,所以還是一對
兩個月后,生下一對小兔對數共有兩對
三個月以后,老兔子又生下一對,因為小兔子還沒有繁殖能力,所以一共是三對
------
依次類推可以列出下表:
經過月數
1
2
3
4
5
6
7
8
9
10
11
12
幼仔對數
1
0
1
1
2
3
5
8
13
21
34
55
成兔對數
0
1
1
2
3
5
8
13
21
34
55
89
 
總體對數
1
1
2
3
5
8
13
21
34
55
89
144
 
幼仔對數=前月成兔對數
成兔對數=前月成兔對數+前月幼仔對數
總體對數=本月成兔對數+本月幼仔對數
可以看出幼仔對數、成兔對數、總體對數都構成了一個數列。這個數列有關十分明顯的特點,那是:前面相鄰兩項之和,構成了后一項。

遞推公式

斐波那契數列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
如果設F(n)為該數列的第n項(n∈N*),那么這句話可以寫成如下形式::F(n)=F(n-1)+F(n-2)
顯然這是一個線性遞推數列。

代碼

/**生成100以內的斐波那契數列 */
public class Test
{
public static void main(String[] args)
{
   System.out.println("斐波那契數列:");
   /**采用for循環,聲明3個變量:
   i---當月🐇數
   j---上月🐇數
   m--中間變量,用來記錄本月的🐇數
    */
   for(int i=1,j=0,m=0;i<100;)
   {
      m=i;//記錄本月🐇數
      System.out.println(" "+i);//輸出本月🐇數
      i=i+j;//計算下月🐇數 
      j=m;//記錄本月🐇數
   }
}
}

結果

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM