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对兔子


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM