题目:

/**
* 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
* 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个
* 月的兔子总数为多少?
*
*/

解析:

/**
* 1.这是一个斐波那契数列,第三个数等于前两个数之和
* 2.定义变量,第一个数,第二个数,第三个数,都会随着月数的变化而变化
* 总而言之就是动态的
* 第一,第二,第三都是相对的
*/

public class Programmer1 {
    
    public static void main(String[] args) {
        /**
         * 1.这是一个斐波那契数列,第三个数等于前两个数之和
         * 2.定义变量,第一个数,第二个数,第三个数,都会随着月数的变化而变化
         * 总而言之就是动态的
         * 第一,第二,第三都是相对的
         */
        int first = 1;
        int second = 1;
        int third ;
        for(int month=1;month<25;month++){
            if(month>2){
                third = first +second;
                first = second;
                second =third;
                System.out.println("第"+month+"个月有"+third+"对兔子");
            }else{
                System.out.println("第"+month+"个月有"+first+"对兔子");
            }
        }
        
        System.out.println("-------------------------用数组实现---------------------");
        
        /**
         * 用数组实现菲波那切数列数列
         * 1.定义一个数组来存储兔子的对数
         * 2.第一,第二个数赋值为1
         * 
         */
        int[] arr = new int[24];
        arr[0]=1;
        arr[1]=1;
        for(int i=2;i<arr.length;i++){
            arr[i]=arr[i-1]+arr[i-2];
            System.out.println("第"+(i+1)+"个月有"+arr[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对兔子

posted on 2018-07-27 12:15  邢逸  阅读(5947)  评论(0编辑  收藏  举报