题目:古典问题:有一对兔子,从出生后第 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);

}

}

}

文章来源:搜索引擎大全http://www.iis7.com/b/ssyqdq/

java编程兔子问题_JAVA编程题-用java解决兔子问题相关推荐

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

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

  2. JAVA兔子繁衍_Java 编程经典案例之兔子繁殖迭代问题

    题目 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第6个月的兔子总数为多少? 分析 首先我们要明白题目的意思指的是每个月的兔子总对数:假 ...

  3. java编程官方教程_Java编程入门官方教程

    图书特色:关键技能与概念:每章开头列出要介绍的技能和概念 专家解答:以问答形式提供附加信息和实用提示 编程练习:示范如何运用编程技能的紧贴实用的练习 自测题:每章后有一些测试题,以帮助读者扎实掌握Ja ...

  4. java面试编程面试题_Java编程面试的前50个问题

    java面试编程面试题 Java Programming Interview Questions are always the deciding factor in any Java intervie ...

  5. java编程思想 文献_JAVA编程思想英文参考文献和翻译

    JAVA编程思想英文参考文献和翻译 时间:2016-11-15 14:44来源:毕业论文 虽然java是基于C++基础上的,但是它更是纯粹的面向对象语 "If we spoke a diff ...

  6. java编程思想读书_JAVA编程思想读书记(一)

    JAVA是面向对象的语言,这一点每一个开发者都知道.但是享受于在myeclipse上自动生成,自动解决一切问题的时候,有些基础的我们也许会忘掉.我能明显感觉到自己对于软件的依赖以及基础知识的流失,所以 ...

  7. java编程是什么_java编程是什么?java编程有哪些特点?

    大家要想学好java编程,首先就要知道java编程是什么?了解它的含义,才可以更好的只程序中体现,那么接下来,我们就来给大家讲解一下这方面的内容,让大家了解更多java的知识! Java是一种可以撰写 ...

  8. java字节码转换_Java源程序如何变成Java字节码?

    谢邀,题主的问题主要涉及到编译和反编译相关的知识,简单帮你回答一下. 编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Program ...

  9. Java改知能机_Java 面试突击之 Java 并发知识基础 进阶考点全解析

    版权说明:本文内容根据 github 开源项目整理所得 项目地址:https://github.com/Snailclimb/JavaGuide​github.com 一.基础 什么是线程和进程? 何 ...

最新文章

  1. Windows 编程[3] - 学习窗体生成的过程三
  2. 图形界面终端下打印内核调试信息
  3. [C++]C++11:Function与Bind
  4. 怎么样清除bitcoin-qt的交易记录
  5. Spark算子:RDD基本转换操作–coalesce、repartition
  6. 【性能测试】如何用一条命令完全掌握linux系统性能监控(top高阶用法)
  7. android8 测试,Android 8.0 Oreo 国内可用测试平台上线
  8. AcWing 888. 求组合数 IV(高精度求组合数问题)
  9. 181129每日一句
  10. 关于求数列极限的方法的总结
  11. 荣耀 android 11 rom,华为荣耀10官方固件rom刷机包_华为荣耀10完整版系统升级包
  12. 马斯克与Twitter风波大戏
  13. 【eNSP】基础实验2-----交换机接交换机
  14. Linux C 函数参考(日期时间) 作者: 出处:hur.cn 更新时间: 2007年01月29日
  15. vivo手机html有吗,vivo手机有哪些系列?区别是什么?
  16. “给在读研究生+未来要读研同学们的一封受益匪浅的信”(摘录+整合)
  17. 收集各种 iOS App 开发可以用到的代码示例
  18. TRY HACK ME | INTERNAL「渗透测试挑战02」
  19. 分层和分段用什么符号_分段符号该怎么用
  20. 在Windows中编辑好的汉字文档,上传到Linux下打开乱码问题

热门文章

  1. python双星号什么运算_**(双星号/星号)和*(星号/星号)对参数有什么作用?...
  2. Java中都是值传递 pass-by-value
  3. VMware配置VMnet8网络
  4. Suzy找到实习了吗 Day 21 | 二叉树进行中:530. 二叉搜索树的最小绝对差,501. 二叉搜索树中的众数,236. 二叉树的最近公共祖先
  5. 淘宝/天猫平台商品详情API接口调用说明
  6. 深度学习中需要掌握的数学1之概率统计
  7. Nodejs实现给手机发送短信验证码用于登录功能(免费短信)
  8. 在JSP中定义一个全局变量,供所有页面引用
  9. Android 滚动字幕实现
  10. 美国软件和菜头——《软件随想录》读后感