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

解答:

分析:从第一对兔子开始,第1个月1对兔子,由于“长到第三个月后每个月又生一对兔子”,所以第2个月也是1对兔子,第3个月时可以生一对兔子,所以总数为2对,这时,其中有一对是以后每个月都可以生一对兔子的老兔子,另一对是一对新兔子,它只有在第三个月的时候才可以每个月生一对兔子;这样的话,第4个月的兔子总数为3对,…以此类推,从第1个月到第12个月的兔子对总数分别为:1,1,2,3,5,8,13,21,34,55,89,144。。。。。

这是一个典型的斐波那契数列。

由于每对新兔子隔一个月才可以生新一对兔子, 每月的兔子对总数为前两个月的兔子对数之和。

(方法一)利用java编程基本实现,程序设计如下:

代码实现如下:

public class RabbitDemo {

public static void main(String[] args) {

int amount; //每个月的兔子总数

int nAmount = 1; //第一个月的兔子数量

int oAmount = 1; //第二个月的兔子数量

for(int i=1;i<=2;i++){

amount=1;

System.out.println("第" + i + "个月的兔子总是为:" + amount);

}

for(int i=3;i<=12; i++) {

amount = oAmount + nAmount;

oAmount = nAmount;

nAmount = amount;

System.out.println("第" + i + "个月的兔子总是为:" + amount);

}

}

}

(方法二)利用递归的方法来解决斐波那契数列:

代码实现如下:

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兔子_JAVA编程题-用java解决兔子问题相关推荐

  1. java解决兔子_JAVA编程题-用java解决兔子问题

    题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解答: 分析:从第一对兔子开始,第1个月1对兔 ...

  2. java猜字母游戏_JAVA编程题-用java编写猜字母游戏

    原标题:JAVA编程题-用java编写猜字母游戏 问题: 猜字母游戏,其游戏规则为: 程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统 ...

  3. java编程兔子问题_JAVA编程题-用java解决兔子问题

    题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解答: 分析:从第一对兔子开始,第1个月1对兔 ...

  4. 剑指offer编程题(JAVA实现)——第35题:数组中的逆序对

    github https://github.com/JasonZhangCauc/JZOffer 剑指offer编程题(JAVA实现)--第35题:数组中的逆序对 题目描述 在数组中的两个数字,如果前 ...

  5. 剑指offer编程题(JAVA实现)——第38题:二叉树的深度

    github https://github.com/JasonZhangCauc/JZOffer 剑指offer编程题(JAVA实现)--第38题:二叉树的深度 题目描述 输入一棵二叉树,求该树的深度 ...

  6. 速学堂(java)第十章编程题答案(自写)

    速学堂(java)第十章编程题答案(自写) 1. 实现字节数组和任何基本类型和引用类型执行的相互转换 提示:使用ByteArrayInutStream和ByteArrayOutputStream. p ...

  7. java集合到线程的考试_成都汇智动力-Java SE考试编程题总结

    原标题:成都汇智动力-Java SE考试编程题总结 线程和进程的区别: (1)进程是运行中的程序,拥有自己独立的内存空间和资源; (2)一个进程可以有一个或多个线程组成,且至少有一个线程称为主线程; ...

  8. java常见笔试编程题(一)

    java常见笔试编程题(一) 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,例如"人abc",应该截为"人ab& ...

  9. JAVA基础入门编程题练习(一)

    JAVA基础入门编程题练习(一) 1.设计一个学生类Student和它的一个子类Undergraduate.要求如下: (1) Student类有name和age属性,一个包含两个参数的构造方法,用于 ...

最新文章

  1. 联邦学习应用思考:需求还是方法?
  2. 二层交换配置完ping失败_设置完端口聚合之后就ping不通了!!!
  3. Kettle使用_12 CSV文件仅并发运行与复制数量
  4. 【quartz】执行一次功能
  5. 索引unusable|disable|enable
  6. css属性 background
  7. 如何计算 string 的 crc32 值 ?
  8. 《linux核心应用命令速查》连载十一:pstree:显示进程状态树
  9. 前端CSS - 相对定位,绝对定位,固定定位
  10. 区块链 以太坊 solidity 事务控制和异常处理 require assert
  11. mysql姓氏笔画排序_mysql中怎么按姓氏笔画排序
  12. cashfiesta网上赚钱
  13. 点击换图 秀米的svg_时隔五年再用秀米,我发现了这个超强玩法。
  14. 用python计算化学题_(完整版)化学计算题解题方法(含答案)
  15. 百度地图(地图生成)
  16. 基于Qt开发的AES文件加解密工具
  17. react 中 Warning A future version of React will block javascript 异常解决
  18. 个人购买云服务器的必要性和最常见几个用途?细节考虑
  19. Android中关于Manifest的权限注册问题
  20. vue移动端用什么数据可视化插件_前端必看的数据可视化入门指南

热门文章

  1. Study_microblog笔记Part 4--数据库
  2. 普适型GNSS接收机_一体化GNSS测量仪
  3. mysql_联合查询union和union all 概念
  4. win10使用分区工具系统迁移后无法启动记录(UEFI)
  5. UE4之材质参数的使用
  6. 【应用实例】几步教你实现无人机与遥控器的远程通信
  7. Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战
  8. Webshell 高级样本收集
  9. 计算机考证用什么软件拍照
  10. 每当我听到我会唱的歌我就会觉得世界不公得好可爱