生兔子问题

有一对兔子,从出生后第四个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子。假如兔子都不死,计算第十个月兔子的总数?

分析:

四个月开始生兔子,则:F(N) = f(n-1)+ f(n-3)。可以运用递归来解决问题。

 import java.util.ArrayList;
import java.util.List;public class 生兔子 {public static void main(String[] args) { //  System.out.println(f(13));int n = 13;int [] num = new int[14];num[1]=1;num[2]=1;num[3]=1;for (int i=4;i<=n;i++){num[i]=num[i-1]+num[i-3];}System.out.println(num[n]);}public static int f(int n){if(n==1 || n==2 || n==3){return 1;}
//        今年的 =   去年的+今年新出生//去年的       今年新出生的return f(n-1)   +   f(n-3);}}

如果当出生后第三个月开始生兔子: F(N) = f(n-1)+ f(n-2)

今年的总数=去年的总数+今年的新出生的兔子,

而今年新出生的兔子=今年成熟了的兔子数量(每只成熟的兔子生一只小兔),

那今年成熟了的兔子数量又是什么呢?其实就是前年的兔子总数,因为前年的兔子,不管几岁,到今年一定成熟,可以生新兔子了。而去年的没有成熟,不能生兔子。

所以今年的总数=去年的总数+前年的总数。

F(n)=F(n-1)+F(n-2)。

这个数列就是1、1、2、3、5、8、13、21、34、……

在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。


(按照上面的改一下就好了)

烦人的来了

但是就有这么一个问题:兔子也会死

出生到死亡只有三年,即n年出生,n+3年死去。

出生一年以后可以生育,也就是n+1年开始生育,一年可以生一只宝宝。

这时我们换一个思路:

定义f(n)为第n年新出生的动物个数,则f(n)=f(n-1)+f(n-2),前两项为1,而每年的总数也就是三项求和而已。

每年出生的数量为1,1,2,3,5,8,13,21

每年兔子的总数是 1,2,4,6,10,16,26,42

Java 实现 蓝桥杯 生兔子问题相关推荐

  1. 蓝桥杯陶陶摘苹果C语言,Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2

    算法提高 陶陶摘苹果2 时间限制:1.0s 内存限制:256.0MB 问题描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出n个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳, ...

  2. 蓝桥杯试题 基础练习 BASIC-11 十六进制转十进制 JAVA——冲刺蓝桥杯第六天

    目录 前言 试题 基础练习 十六进制转十进制 要点 思路一:常规做法--进制转换 字符 循环 本题代码 思路二:简单做法,使用java自带的方法 本题代码 前言 进制转化包括这篇我写了三篇了,这篇没讲 ...

  3. 蓝桥杯日期计算java_日期类的使用(java)-蓝桥杯

    蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...

  4. java:蓝桥杯练习 分解质因数

    [蓝桥杯][基础练习VIP]分解质因数 时间限制: 1Sec 内存限制: 128MB 提交: 2802 解决: 1688 题目描述 求出区间[a,b]中所有整数的质因数分解. 提示 先筛出所有素数,然 ...

  5. 标题 日期问题java蓝桥杯,日期类的使用(java)-蓝桥杯

    蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...

  6. Java实现 蓝桥杯VIP 基础练习 分解质因数

    题目介绍 问题描述 求出区间[a,b]中所有整数的质因数分解. 输入格式 输入两个整数a,b. 输出格式 每行输出一个数的分解,形如k=a1a2a3-(a1<=a2<=a3-,k也是从小到 ...

  7. Java实现蓝桥杯 算法训练 ALGO-15 旅行家的预算

    问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...

  8. Java实现 蓝桥杯VIP 算法训练 JAM计数法

    题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小 写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文 ...

  9. 算法训练,逗志芃的暴走(Java代码)-蓝桥杯/leetcode

    蓝桥杯试题 算法训练 逗志芃的暴走(Java代码) 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 逗志芃是有妹子的现充,但是有时候妹子就是烦恼.因为逗志芃太逗了,所以这段时间妹子对 ...

最新文章

  1. 保姆级教程:Spring Boot 单元测试
  2. 如何使用 Mmcv.exe 工具来管理群集消息队列资源[转]
  3. 简书自动上传工具出现多余空行的问题及解决方案
  4. 《收集苹果》 动态规划入门
  5. .NET Core Web API:您需要了解的最少知识(第2部分,共2部分)
  6. 吴恩达神经网络和深度学习-学习笔记-24-在不同的划分上进行训练和测试+不匹配数据划分的偏差和方差
  7. 怎么用editplus写asm文件_本周分享 | 用Typora写markdown文件
  8. 如何使用PDF虚拟打印机打印文件
  9. 自学Shiro框架笔记
  10. 利用 MAC 自带的 mount_ntfs 工具加载ntfs移动硬盘进行数据读写
  11. linux 内核出现 oops 如何调试
  12. Unity3d小球碰到墙壁之后反弹
  13. 数据结构与算法题目集7-32——哥尼斯堡的“七桥问题”
  14. 开源项目-OA自动化管理系统
  15. Pagination 分页实现跳转首页和尾页
  16. 揭开RedisShake的秘密
  17. 如何用深度学习框架PaddlePaddle实现智能春联
  18. Delphi读取jpg文件的问题
  19. My Life, Rated!
  20. 《scikit-learn机器学习》波斯顿房价预测(线性回归预测)

热门文章

  1. 卷积神经网络处理一维信号(故障诊断)
  2. 【案例分享】沃尔沃FMX V4 Euro 6 燃油压力故障诊断
  3. oracle1455解决方法,oracle_1455_错误解决办法.doc
  4. 面对大量的用户数据泄露事件,普通用户该如何保护个人的网络信息安全?
  5. 1Z308020、民事诉讼制度
  6. 教你如何查看附近的WiFi密码
  7. 学数控编程,知道这三段代码就够了,很实用
  8. 苹果 macOS Big Sur 11.5 RC 2(20G71)候选版本发布
  9. 艾永亮:分析瑞幸咖啡的商业模式,超级产品战略为企业带来新机会
  10. java的environment_Java - 环境设置(Environment Setup)