Java经典兔子问题
题目:古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

分析:首先我们要明白题目的意思指的是每个月的兔子总对数;假设将兔子分为小中大三种,兔子从出生后三个月后每个月就会生出一对兔子,

那么我们假定第一个月的兔子为小兔子,第二个月为中兔子,第三个月之后就为大兔子,那么第一个月分别有1、0、0,第二个月分别为0、1、0,

第三个月分别为1、0、1,第四个月分别为,1、1、1,第五个月分别为2、1、2,第六个月分别为3、2、3,第七个月分别为5、3、5……

兔子总数分别为:1、1、2、3、5、8、13……

于是得出了一个规律,从第三个月起,后面的兔子总数都等于前面两个月的兔子总数之和,即为斐波那契数列。

Java代码:

public class javatuziti {public static void main(String[] args) {int i = 1;for (int j = 1; j <=20; j++) {System.out.println("兔子第"+j+"  个月的总数为:"+f(j));}}public static int f(int x) {if (x==1 || x==2) {return 1;}else {return f(x-1)+f(x-2);}}
}

第二种方法:

package org.llh.demo01;import java.util.ArrayList;public class DemoTest002 {static ArrayList<Integer> list = new ArrayList();int number ;//计算后一个月的兔子数量public static void main(String[] args){DemoTest002 st = new DemoTest002();st.fun();st.out();}private void fun(){ //将12个月的兔子数量保存进list链表集合内list.add(1);list.add(1); //前两个月的兔子数量for(int i = 3;i<=12;i++){number = list.get(i-2)+list.get(i-3);list.add(number);}}private void out(){//输出12个月的兔子数量int i =1;for(int j:list){System.out.println("第"+(i++)+"个月的兔子数量是"+j);}}}```**第三种方法:**
分析:从第一对兔子开始,第1个月1对兔子,由于“长到第三个月后每个月又生一对兔子”,所以第2个月也是1对兔子,第3个月时可以生一对兔子,所以总数为2对,这时,其中有一对是以后每个月都可以生一对兔子的老兔子,另一对是一对新兔子,它只有在第三个月的时候才可以每个月生一对兔子;这样的话,第4个月的兔子总数为3对,…以此类推,从第1个月到第12个月的兔子对总数分别为:1,1,2,3,5,8,13,21,34,55,89,144。。。。。这是一个典型的斐波那契数列。由于每对新兔子隔一个月才可以生新一对兔子, 每月的兔子对总数为前两个月的兔子对数之和。```java
import java.util.Scanner;public class RabbitDemo {public static void main(String[] args) {System.out.println(“输入月份”);Scanner s = new Scanner( System.in );int month = s.nextInt();System.out.println(“第” + month + “个月的兔子总是为”+getNum(month));}public static int getNum(int month){if(month == 1 || month == 2){return 1;}else{return getNum(month-1)+getNum(month-2);}}}

Java经典算法题目(兔子题)及题目分析相关推荐

  1. java经典算法四十题

    java经典算法四十题 [程序9]题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程找出1000以内的所有完数. public class W ...

  2. JAVA经典算法面试40题及答案

    By Lee - Last updated: 星期日, 三月 9, 2014 现在是3月份,也是每年开年企业公司招聘的高峰期,同时有许多的朋友也出来找工作.现在的招聘他们有时会给你出一套面试题或者智力 ...

  3. JAVA经典算法50题(转)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1]   题目:古典问题:有一对兔子, ...

  4. java经典100例算法题_10道java经典算法题,每一题都能帮你提升java水平!

    JAVA经典算法题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子 ...

  5. java求最大公约数_10道java经典算法题,小白必备,每一题都能提升你的java能力...

    JAVA经典算法 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 更多java资料可以私信我领取! [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每 ...

  6. JAVA经典算法40题

    JAVA经典算法40题 [程序1]  题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析 ...

  7. java经典问题算法大全_10道java经典算法!每一题都能提升你的java能力!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 10道java经典算法! [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位. ...

  8. Java经典算法四十例编程详解+程序实例

    JAVA经典算法40例 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: ...

  9. JAVA经典算法大全

    JAVA经典算法大全 from http://java-mans.iteye.com/blog/16457031.河内之塔 2.Algorithm Gossip: 费式数列. 3.巴斯卡三角形 4.A ...

  10. Java经典算法(四)

    Java经典算法(四) 说明:共有四十题.本部分为第四部分,共十题. 31. 题目:将一个数组逆序输出. package com.remoa.algorithm.day16;import java.u ...

最新文章

  1. apu和atom处理器两者的定位
  2. 【redis】redis实现API接口调用调用次数的限制
  3. 跳棋c语言,C/C++跳棋问题
  4. android c 对象为空,ndk-jni中C/C++接口函数修改函数参数jobject对象成员值(数组)的有关问题...
  5. CSS图像绘制之:条纹背景(转)
  6. gz键盘增强小工具_干货推荐∣6个超有用的在线工具,日常必备
  7. 祝福 Stephan Ewen,Apache Flink 将继续前行 !
  8. 后台java规范参数_详解Java后端优雅验证参数合法性
  9. QT制作自定义进度条(圆环状)
  10. c语言九宫格的递归算法,九宫格 数独 求解 算法 栈实现
  11. rust下沉试密室怎么用_魔兽7.1考古任务黑鸦堡垒密室在哪 钥匙使用消失二楼铁门怎么开...
  12. hazy的面试小笔记之Spring(持续更新)
  13. 记录微信分享图标不显示的问题
  14. PLC抑制干扰电路的设计
  15. OracleEBSAPP-XLA-95103错误(EventIDcannothaveaNULLvalue.)
  16. 14个PPT资源素材网站,再也不怕做PPT了
  17. 为什么卸载TeamViewer
  18. 行人重识别-姿态检测
  19. 基于听觉特性的Mel频率倒谱分析
  20. 有限体积法(11)——交错网格

热门文章

  1. 数字兆欧表的使用及安全注意事项
  2. 最小生成树算法-克鲁斯卡尔和普利姆
  3. 学计算机未来的规划,未来学习计划范本
  4. 计算机的桌面不见了,电脑桌面图标没有了怎么恢复 教你找回消失的电脑桌面图标...
  5. 【面试分享】GitHub上Star大佬是如何一举拿下7家一线互联网大厂的Offer
  6. 正则表达式—————根据银行卡号判断银行名称
  7. 免费主机 虚拟主机 香港虚拟主机
  8. 联想android刷机教程,联想Z5 Pro(安卓9.0)一键刷机教程,看教程秒懂刷机
  9. 瞬态抑制二极管TVS的基本知识
  10. 深度剖析:PS中的3大类调色功能。