1.这个问题是如下的:

   有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第3个月又生一对兔子,加入兔子都不死,问第20个月兔子的对数?

分析:我们找规律

      兔子对数
第1个月:    1
第2个月:    1
第3个月:    2
第4个月:    3
第5个月:      5
第6个月:    8
……
由此可见兔子的对象数据是:
 1,1,2,3,5,8,……
• n=1或者n=2,result=1;

• n>=3,result=fun(n-1)+fun(n-2);

2. 代码实现:

 package com.himi.diguidemo;

 /**
*
*有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第3个月又生一对兔子,加入兔子都不死,问第20个月兔子的 对数?
*分析:我们找规律
* 兔子对数
*第1个月: 1
*第2个月: 1
*第3个月: 2
*第4个月: 3
*第5个月: 5
*第6个月: 8
*……
*由此可见兔子的对象数据是:
* 1,1,2,3,5,8,……
*
* 如何实现这个程序呢?
* A:数组实现
* B:变量的变化实现
* 假如相邻的两个月的兔子对数为a,b
* 第1个月: a=1,b=1
* 第2个月: a=1,b=2
* 第3个月: a=2,b=3
* 第4个月: a=3,b=5
* 看到了:下一次的a是以前的b,下一次的b是以前的a+b
*
* C:递归实现
*/
public class DiGuiDemo2 { public static void main(String[] args) {
//数组实现
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 1;
for(int i =2; i<=arr.length-1; i++) {
arr[i] = arr[i-1]+arr[i-2];
}
System.out.println("数组实现---第20月兔子的对数:"+arr[19]); System.out.println("=============================");
//变量的变化实现
int a=1;
int b=1;
for(int i=0; i<18; i++){
int temp =a; //保存a的初试值
a = b; //这里的a发生了变化,而下面需要使用到a的初始值,所以上面定义了int temp = a;
b = temp+b;
}
System.out.println("变量的变化实现---第20月兔子的对数:"+b); System.out.println("============================="); //递归实现
System.out.println("递归实现---第20月兔子的对数:"+func(20)); } public static int func(int n) {
if(n==1 || n==2) {
return 1;
} return func(n-1)+func(n-2);
} }

运行结果如下:

最新文章

  1. WPF如何实现一个漂亮的页签导航UI
  2. 如何才能恢复Excel文档的打开密码
  3. 最简单的Web服务器
  4. sql cross join table
  5. VS2013中,RDLC设置数据源和参数的界面
  6. 拒绝了对对象 &#39;**&#39; (数据库 &#39;db&#39;,架构 &#39;dbo&#39;)的 SELECT 权限
  7. Python拼接多张图片
  8. 让你的Xcode8 支持 iOS7
  9. Auto login to your computer
  10. web攻击方式和防御方法
  11. C# 根据时间创建文件夹
  12. JavaScript(6)——事件1.0
  13. Sqoop export(Hive to MySQL) 的一些 reference
  14. 如何使用Nunit进行测试(Visual Studio 2017 comminity)
  15. sizeof 与 字节对齐
  16. pytest的fixture和conftest
  17. docker-compose使用volume部署mysql时permission deny问题解决
  18. 【IT笔试面试题整理】有序数组生成最小高度二叉树
  19. opencv中的洪水填充算法
  20. plsql developer配置

热门文章

  1. 分数拆分( Fractions Again, UVA 10976)-ACM
  2. php基础知识【oop/mvc/orm/aop】
  3. apt-cache madison package-name
  4. var a =a || {}
  5. +=与join的性能测试
  6. 常见的三种Web服务架构
  7. Tunnel Warfare
  8. cf D George and Interesting Graph
  9. IntegerCache详解
  10. 「Poetize3」绿豆蛙的归宿