4.古典问题:有一对兔子(斐波那契数列)

Posted xyblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.古典问题:有一对兔子(斐波那契数列)相关的知识,希望对你有一定的参考价值。

题目:

/**
* 题目:古典问题:有一对兔子,从出生后第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对兔子
























以上是关于4.古典问题:有一对兔子(斐波那契数列)的主要内容,如果未能解决你的问题,请参考以下文章

兔子问题or斐波那契数列

算法练习2---斐波那契数列java版

使用循环解决斐波那契数列Fibonacci sequence

1 斐波那契的兔子

Pythondemo实验14练习实例斐波那契数列经典兔子生小兔子问题

兔子生兔子问题(斐波那契数列)