有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
来源:互联网 发布:php个人网盘源码 编辑:程序博客网 时间:2024/05/01 07:54
网上看到这个题目,直接看到答案,不是很理解,还是按照自己梳理了一遍。
首先,我先搞了一个二维数组,3个数字记录每个月状态是新生的兔子,2个月大的兔子,3个月大的兔子,
public static int test0() {int i = 0;int m = 20;int[][] a = new int[20][3];a[0][0] = 1;// 新出生的兔子a[0][1] = 0;// 2个月的兔子a[0][2] = 0;// 3个月的兔子for (int n = 1; n < m; n++) {a[n][0] = a[n - 1][1] + a[n - 1][2];// 刚出生的兔子,上个月状态是第二个月的兔子+第三个月的兔子a[n][1] = a[n - 1][0];// 状态是第二个月的兔子 = 上个月1个月的兔子a[n][2] = a[n - 1][1] + a[n - 1][2];// 状态是三个月的兔子=上个月2个月的兔子+上个月三个月的兔子System.err.println("第" + (n+1) + "个月的兔子为:" + (a[n][0] + a[n][1] + a[n][2]));}return 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
发现第三个月等于第一个月+第二个月
依次内推,可以吧算法写成
/** * 这是分析数字结构的结果,等于前一个月+前2个月 */public static void test1() {for (int i = 1; i <= 20; i++) {int num = getNum(i);System.out.println("第 " + i + " 月份,兔子的数量为: " + num);}}/** * 获取前2个数字相加, * * @param i * @return */public static int getNum(int i) {if ((i == 1) || (i == 2)) {return 1;} else {return getNum(i - 1) + getNum(i - 2);}}
如果吧3改成2,2个月就生的话,
/** * 如果第2个月就生,那么就是1,2,4,8,可以直接上个月数字*2 */public static int test2() {int i = 0;int m = 20;int[][] a = new int[20][2];a[0][0] = 1;// 新出生的兔子a[0][1] = 0;// 2个月的兔子for (int n = 1; n < m; n++) {a[n][0] = a[n - 1][0] + a[n - 1][1];// a[n][1] = a[n - 1][0] + a[n - 1][1];;// System.err.println("第" + (n+1) + "个月的兔子为:" + (a[n][0] + a[n][1] ));}return i;}
这样就是双倍放大。。。。。
阅读全文
0 0
- 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不 死,问每个月的兔子总数为多少
- [Java] 练习题001:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
- 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? Java实现
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- gym 101170 NWERC 2016 I Iron and Coal
- linux系统安装git,nodejs,mysql
- SAS篇-如何判断一个字段值是否为空?
- 重新解析 REST Service(REST Service 的最佳实践,第 1 部分)
- ORB-SLAM2在window下的配置 (2)
- 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- Builder设计模式——自由的扩展你的项目
- OSI七层协议和Tcp/Ip四层协议
- select 多级联动下拉
- 【更新】专业PDF组件Spire.PDF V3.9.226发布| 支持将PDF转换为SVG流
- 移动支付宝支付, 安卓 + nodejs 服务器
- activemq的几种基本通信方式总结
- iOS10 AppDelegate文件中代理方法的作用
- 尝试新的器材配置