有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少。 

解决方案 »

  1.   

    别搞了,这倒霉的兔子,,,
    public class Rabbit {
    public static void fun(int t) {
    int r1 = 0, r2 = 2, i=0,temp = 0;
    if (t < 1)
    return;
    while (i<t) {
    System.out.println("第"+(i+1)+"月:");
    System.out.println(r2);
    temp = r1;
    r1 = r2;
    r2 = temp + r2;
    i++;
    }
    } public static void main(String[] args) {
    System.out.println("兔子数目:");
    fun(12);//参数代表第多少个月 这里是12个月
    }
    }
      

  2.   

    已经在这里给你解答了相当于斐波那契数列问题http://topic.csdn.net/u/20080529/00/34e755ed-39e7-4da7-bc3b-c97d95eb24cf.html
      

  3.   

    public class RabitCounter {
    public static void main(String[] args){
    int month=7;
    int result=0;
    int[] currArray={0,0,0};
    int[] prevArray={1,1,2};
    int end=0;
    int pos=0;
    if((month/3)*3<month){
    end=month/3;
    pos=month-((month/3)*3)-1;
    }else{
    end=month/3-1;
    }
    if(month<1){
    result=0;
    }else if(month<=2){
    result=1;
    }else if(month==3){
    result=2;
    }else{
    for(int i=1;i<=end;i++){
    currArray[0]=prevArray[2]+prevArray[0];
    System.out.println(currArray[0]);
    currArray[1]=currArray[0]+prevArray[1];
    System.out.println(currArray[1]);
    currArray[2]=currArray[1]+prevArray[2];
    System.out.println(currArray[2]);
    result=currArray[2];
    prevArray=currArray;
    System.out.println("=================="+i+"================");
    }
    result=currArray[pos];
    }

    System.out.println("到第"+month+"个月共"+result*2+"只兔子");
    }
    }
      

  4.   

    格式没弄好,改month就可以得到结果了.
    public class RabitCounter {
    public static void main(String[] args){
    int month=7;
    int result=0;
    int[] currArray={0,0,0};
    int[] prevArray={1,1,2};
    int end=0;
    int pos=0;
    if((month/3)*3<month){
    end=month/3;
    pos=month-((month/3)*3)-1;
    }else{
    end=month/3-1;
    }
    if(month<1){
    result=0;
    }else if(month<=2){
    result=1;
    }else if(month==3){
    result=2;
    }else{
    for(int i=1;i<=end;i++){
    currArray[0]=prevArray[2]+prevArray[0];
    System.out.println(currArray[0]);
    currArray[1]=currArray[0]+prevArray[1];
    System.out.println(currArray[1]);
    currArray[2]=currArray[1]+prevArray[2];
    System.out.println(currArray[2]);
    result=currArray[2];
    prevArray=currArray;
    System.out.println("=================="+i+"================");
    }
    result=currArray[pos];
    }

    System.out.println("到第"+month+"个月共"+result*2+"只兔子");
    }
    }
      

  5.   

    4楼本来就给出了正确的思路,可惜又自己否定了。典型的斐波那契数列应用关键算法步骤:
    f(n) = f(n-1) + f(n-3)
      

  6.   

    f(n+2) = f(n+1) + f(n)