有一对耗子 他每月要生一对小耗子,小耗子长到第四个月后,每月(从第四个月)也开始每月生一对小耗子,请问,100年后 一共有多少只耗子.
PS:不考虑公母与死亡问题

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【kyoko609】截止到2008-07-14 21:15:41的历史汇总数据(不包括此帖):
    发帖的总数量:4                        发帖的总分数:40                       每贴平均分数:10                       
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:3                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:75.00 %               结分的百分比:50.00 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   


    int n=4; //n月后开始产子
    int s[] = new int[n+1]; //出生i个月的耗子数量有s[i]对
    s[x] = 1;
    for(int month=0; month<=100*12; ++month){
      int new_s = s[x];
      s[x] += s[x-1];
      for(int i=x-1; i>0; --i)
        s[i] = s[i-1];
      s[0] = new_s;
    }
      

  3.   

     (Sn表示n月后兔子对数)
    S1=S2=S3=1
    Sn=S(n-1)+S(n-3)简单递归公式 ,变种的斐波那契数列,程序就简单了。
      

  4.   

    1 2 3 5 8...(对)
    按楼主描述就是类fibonacci数列f(n)=f(n-2)+f(n-1) (n>2,n∈Z)
    f(1)=1,f(2)=2
      

  5.   

    你的第四个月开始生小老鼠的意思是:小老鼠只长三个月就开始生小老鼠!!???
    解: 前面四个月 因为只有一对老鼠生育
    所以S1=1;s2=2;s3=3;
    第四个月原来的老鼠和第一胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以s4=2*2+2;
    第五个月原来的老鼠和第一,二胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以S5=3*2+2;
    第六个月原来的老鼠和第一,二,三胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以S6=4*2+2;
    .
    .
    .
    以此类推:
    得到第N个月后的老鼠为:Sn=(n-2)*2+2;
    如果是每四个月开始生小老鼠的话,就是以下算法:
    所以S1=1;s2=2;s3=3;s4=4
    第五个月原来的老鼠和第一胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以S5=2*2+3;
    第六个月原来的老鼠和第一,二胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以S6=3*2+3;
    .
    .
    .
    以此类推:
    得到第N个月后的老鼠为:Sn=(n-3)*2+3;
      

  6.   

    你的第四个月开始生小老鼠的意思是:小老鼠只长三个月就开始生小老鼠!!??? 
    如果是每三个月开始生小老鼠 算法如下:
    解: 前面三个月 因为只有一对老鼠生育 
    所以S1=1;s2=2;s3=3; 
    第四个月原来的老鼠和第一胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以s4=2*2+2; 
    第五个月原来的老鼠和第一,二胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以S5=3*2+2; 
    第六个月原来的老鼠和第一,二,三胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以S6=4*2+2; 



    以此类推: 
    得到第N个月后的老鼠为:Sn=(n-2)*2+2; 
    如果是每四个月开始生小老鼠的话,就是以下算法: 
    所以S1=1;s2=2;s3=3;s4=4 
    第五个月原来的老鼠和第一胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以S5=2*2+3; 
    第六个月原来的老鼠和第一,二胎小老鼠开始生小老鼠而且还有2对小老鼠没有开始生所以S6=3*2+3; 



    以此类推: 
    得到第N个月后的老鼠为:Sn=(n-3)*2+3; 
      

  7.   

    我们假设:S(n)表示n月后老鼠对数。
    若n月的老鼠一个月后都能生育,则n+1月的老鼠数量:S(n+1) = 2*S(n);
    但实际上到n+1月仍不足三个月的老鼠(也是就n-1月,和n月内出生的老鼠)是不能生育的,
    不能生育的老鼠有:[S(n)-S(n-1)]+[S(n-1)-S(n-2)]=S(n)-S(n-2);
    那么实际上n+1月的老鼠数量:S(n+1)=2S(n)-[S(n)-S(n-2)]=S(n)+S(n-2)