java编程兔子问题_JAVA编程题-用java解决兔子问题
题目:古典问题:有一对兔子,从出生后第 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解决兔子问题相关推荐
- java猜字母游戏_JAVA编程题-用java编写猜字母游戏
原标题:JAVA编程题-用java编写猜字母游戏 问题: 猜字母游戏,其游戏规则为: 程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统 ...
- JAVA兔子繁衍_Java 编程经典案例之兔子繁殖迭代问题
题目 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第6个月的兔子总数为多少? 分析 首先我们要明白题目的意思指的是每个月的兔子总对数:假 ...
- java编程官方教程_Java编程入门官方教程
图书特色:关键技能与概念:每章开头列出要介绍的技能和概念 专家解答:以问答形式提供附加信息和实用提示 编程练习:示范如何运用编程技能的紧贴实用的练习 自测题:每章后有一些测试题,以帮助读者扎实掌握Ja ...
- java面试编程面试题_Java编程面试的前50个问题
java面试编程面试题 Java Programming Interview Questions are always the deciding factor in any Java intervie ...
- java编程思想 文献_JAVA编程思想英文参考文献和翻译
JAVA编程思想英文参考文献和翻译 时间:2016-11-15 14:44来源:毕业论文 虽然java是基于C++基础上的,但是它更是纯粹的面向对象语 "If we spoke a diff ...
- java编程思想读书_JAVA编程思想读书记(一)
JAVA是面向对象的语言,这一点每一个开发者都知道.但是享受于在myeclipse上自动生成,自动解决一切问题的时候,有些基础的我们也许会忘掉.我能明显感觉到自己对于软件的依赖以及基础知识的流失,所以 ...
- java编程是什么_java编程是什么?java编程有哪些特点?
大家要想学好java编程,首先就要知道java编程是什么?了解它的含义,才可以更好的只程序中体现,那么接下来,我们就来给大家讲解一下这方面的内容,让大家了解更多java的知识! Java是一种可以撰写 ...
- java字节码转换_Java源程序如何变成Java字节码?
谢邀,题主的问题主要涉及到编译和反编译相关的知识,简单帮你回答一下. 编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Program ...
- Java改知能机_Java 面试突击之 Java 并发知识基础 进阶考点全解析
版权说明:本文内容根据 github 开源项目整理所得 项目地址:https://github.com/Snailclimb/JavaGuidegithub.com 一.基础 什么是线程和进程? 何 ...
最新文章
- Windows 编程[3] - 学习窗体生成的过程三
- 图形界面终端下打印内核调试信息
- [C++]C++11:Function与Bind
- 怎么样清除bitcoin-qt的交易记录
- Spark算子:RDD基本转换操作–coalesce、repartition
- 【性能测试】如何用一条命令完全掌握linux系统性能监控(top高阶用法)
- android8 测试,Android 8.0 Oreo 国内可用测试平台上线
- AcWing 888. 求组合数 IV(高精度求组合数问题)
- 181129每日一句
- 关于求数列极限的方法的总结
- 荣耀 android 11 rom,华为荣耀10官方固件rom刷机包_华为荣耀10完整版系统升级包
- 马斯克与Twitter风波大戏
- 【eNSP】基础实验2-----交换机接交换机
- Linux C 函数参考(日期时间) 作者: 出处:hur.cn 更新时间: 2007年01月29日
- vivo手机html有吗,vivo手机有哪些系列?区别是什么?
- “给在读研究生+未来要读研同学们的一封受益匪浅的信”(摘录+整合)
- 收集各种 iOS App 开发可以用到的代码示例
- TRY HACK ME | INTERNAL「渗透测试挑战02」
- 分层和分段用什么符号_分段符号该怎么用
- 在Windows中编辑好的汉字文档,上传到Linux下打开乱码问题
热门文章
- python双星号什么运算_**(双星号/星号)和*(星号/星号)对参数有什么作用?...
- Java中都是值传递 pass-by-value
- VMware配置VMnet8网络
- Suzy找到实习了吗 Day 21 | 二叉树进行中:530. 二叉搜索树的最小绝对差,501. 二叉搜索树中的众数,236. 二叉树的最近公共祖先
- 淘宝/天猫平台商品详情API接口调用说明
- 深度学习中需要掌握的数学1之概率统计
- Nodejs实现给手机发送短信验证码用于登录功能(免费短信)
- 在JSP中定义一个全局变量,供所有页面引用
- Android 滚动字幕实现
- 美国软件和菜头——《软件随想录》读后感