斐波那契之兔子問題

  1. 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子對數爲多少?

 分析問題:

根源:1對小兔子

第一個月 1 小兔子

第二個月 1 兔子成熟

第三個月 2 生了一對小兔子

第四個月 3 又生了一對小兔子,且前面那對兔子成熟,共有成熟兔子兩對,不成熟兔子1對

第五個月 5 生了兩對小兔子,且前面那對兔子成熟,共有成熟兔子3對,不成熟兔子2對

可見,只要知道成熟但未參與過生育的兔子數目此問題就可以解決。以下是代碼


  • package day06;
    
    public class Pratise1 {
    	/*
    	 * 	斐波那契問題
    	 * 	分析問題
    	 * 	兔子的增長
    	 * 	成熟兔子,小兔子(成熟兔子每個月可生一對兔子,小兔子一個月變成熟)
    	 */
    	public static void main(String[] args)
    	{
    		System.out.println(method(7));
    	}
    	public static int method(int month)
    	{
    		int f1=1;	//小兔子對數
    		int f2=0;	//成熟兔子對數
    		int f=0;	//記錄剛成熟的兔子
    		if(month<3)
    		{
    			return 1;
    		}
    		//兔子成熟
    		f1=0;
    		f2=1;
    		for(int i=0;i<month-2;i++)
    		{
    			f=f1;	//(成熟的兔子但未生過兔子)等於上個月出生的兔子
    			f1=f2;	//出生的小兔子
    			f2=f+f2; //成熟兔
    		}
    		return f2+f1;
    	}
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章