有人想知道一年内一对兔子可繁殖成多少对,便筑了一道围墙把一对兔子关在里面。已知一对兔子每一个月可以生一对小兔子,而一对兔子出生后.第三个月开始生小兔子假如一年内没有发生死亡,则一对兔子一年内能繁殖成多少对?

     

      分析一:

      列举前七个月兔子的对数,不难发现规律。对应的兔子对数分别是1,1,2,3,5,8,13。不难发现从第三个月开始,兔子的对数等于前面两个月的兔子的对数之和。

      分析二:

      本质上有两类兔子:一是能生殖的兔子,称为成年兔子;二是不能生殖的兔子,称为新生兔子。每个月的兔子数等于成年兔子与新生兔子之和。而新生兔子数等于上月成年兔子数,成年兔子数等于上月成年兔子对数与新生兔子对数之和。

      假设每个月的兔子总数为f(n)。那么f(n)=第n个月成年兔子数+第n个月新生兔子数=(第n-1个月成年兔子数+第n-1个月新生兔子数)+第n-1个月成年兔子数=(第n-1个月成年兔子数+第n-1个月新生兔子数)+(第n-2个月成年兔子数+第n-2个月新生兔子数)=f(n-1)+f(n-2)。

     所以

     f(2)=f(1)=1;

     f(n)=f(n-1)+f(n-2);(n>=3)

     方法:    

public  int GetRabits(int month)
{
       if (month == 1 || month == 2)
       {
            return 1;
       }
       else
       {
            return GetRabits(month - 1)+GetRabits(month-2);
       }     
}

  

      

 posted on 2015-09-26 15:39  会飞的金鱼  阅读(538)  评论(0)    收藏  举报