斐波那契之兔子问题

  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;
    	}
    }

 

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