求每个月兔子的总数

 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
解法一:(数组) 
public class rabbit {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[]=new int[24];//定义一个存放24个月的数组
        a[0]=a[1]=1;
        for(int i=0;i<24;i++){
            if(i==1||i==0)
            System.out.println("第"+(i+1)+"个月兔子的数量为"+1+"对");
            else{
                a[i]=a[i-1]+a[i-2];
                System.out.println("第"+(i+1)+"个月兔子的数量为"+a[i]+"对");
            }
        }
    }
}

运行结果:

第1个月兔子的数量为1对
第2个月兔子的数量为1对
第3个月兔子的数量为2对
第4个月兔子的数量为3对
第5个月兔子的数量为5对
第6个月兔子的数量为8对
第7个月兔子的数量为13对
第8个月兔子的数量为21对
第9个月兔子的数量为34对
第10个月兔子的数量为55对
第11个月兔子的数量为89对
第12个月兔子的数量为144对
第13个月兔子的数量为233对
第14个月兔子的数量为377对
第15个月兔子的数量为610对
第16个月兔子的数量为987对
第17个月兔子的数量为1597对
第18个月兔子的数量为2584对
第19个月兔子的数量为4181对
第20个月兔子的数量为6765对
第21个月兔子的数量为10946对
第22个月兔子的数量为17711对
第23个月兔子的数量为28657对
第24个月兔子的数量为46368对
运行结果

 解法二:(不用数组)

 

public class rabbit2 {
    public static void main(String[] args) {
        long f1,f2;
        f1=f2=1;
        for(int i=0;i<24;i=i+2){
            if(i==0||i==1){
                System.out.println("第1个月兔子的数量为:1对");
                System.out.println("第2个月兔子的数量为:1对");
            }
            else{
                f1=f1+f2;
                f2=f1+f2;
                System.out.println("第"+(i+1)+"个月兔子的数量为"+f1+"对");
                System.out.println("第"+(i+2)+"个月兔子的数量为"+f2+"对");
            }
        }
    }
}

解法三: 用迭代方法

import java.util.Scanner;

public class rabbit3 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("您需要查询第几个月兔子数?");
        int i=in.nextInt();
        int n=rabbit1(i);
        System.out.println("第"+i+"个月兔子的数量为:"+n+"对");
    }
    public static int rabbit1(int n){
        if(n<=0){
            System.out.println("输入错误,重新输入!您需要查询第几个月兔子数?");
            return 0;
        }
        if(n==1||n==2)
            return 1;
        if(n>2)
            return rabbit1(n-1)+rabbit1(n-2);
        return rabbit1(n-1)+rabbit1(n-2);
    }
}

 

 

posted @ 2015-06-06 14:10  七彩木兰  阅读(537)  评论(0编辑  收藏  举报