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);
}
}
}
注意:
如有错误,欢迎指出,共同进步!多多包涵!
java兔子_JAVA编程题-用java解决兔子问题相关推荐
- java解决兔子_JAVA编程题-用java解决兔子问题
题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解答: 分析:从第一对兔子开始,第1个月1对兔 ...
- java猜字母游戏_JAVA编程题-用java编写猜字母游戏
原标题:JAVA编程题-用java编写猜字母游戏 问题: 猜字母游戏,其游戏规则为: 程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统 ...
- java编程兔子问题_JAVA编程题-用java解决兔子问题
题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解答: 分析:从第一对兔子开始,第1个月1对兔 ...
- 剑指offer编程题(JAVA实现)——第35题:数组中的逆序对
github https://github.com/JasonZhangCauc/JZOffer 剑指offer编程题(JAVA实现)--第35题:数组中的逆序对 题目描述 在数组中的两个数字,如果前 ...
- 剑指offer编程题(JAVA实现)——第38题:二叉树的深度
github https://github.com/JasonZhangCauc/JZOffer 剑指offer编程题(JAVA实现)--第38题:二叉树的深度 题目描述 输入一棵二叉树,求该树的深度 ...
- 速学堂(java)第十章编程题答案(自写)
速学堂(java)第十章编程题答案(自写) 1. 实现字节数组和任何基本类型和引用类型执行的相互转换 提示:使用ByteArrayInutStream和ByteArrayOutputStream. p ...
- java集合到线程的考试_成都汇智动力-Java SE考试编程题总结
原标题:成都汇智动力-Java SE考试编程题总结 线程和进程的区别: (1)进程是运行中的程序,拥有自己独立的内存空间和资源; (2)一个进程可以有一个或多个线程组成,且至少有一个线程称为主线程; ...
- java常见笔试编程题(一)
java常见笔试编程题(一) 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,例如"人abc",应该截为"人ab& ...
- JAVA基础入门编程题练习(一)
JAVA基础入门编程题练习(一) 1.设计一个学生类Student和它的一个子类Undergraduate.要求如下: (1) Student类有name和age属性,一个包含两个参数的构造方法,用于 ...
最新文章
- 微软亚洲研究院王井东:下一代视觉识别的通用网络结构是什么样的?
- android 获取位置数据库,尝试从webview获取位置时,Android“SQLite数据库无法从/CachedGeoposition.db加载”错误...
- Acwing 1085. 不要62
- 中兴没有云服务器_中国移动携手中兴通讯推进5G网络云建设
- simhash与Google的网页去重
- 《软件需求模式》阅读笔记二
- 第二周 SCRUM站立会议
- 路飞学城-Python爬虫集训-第一章
- php执行函数吗_php函数system
- 如何构建真实世界可用的 ML 模型?
- Builder 模式在 Guava 中的应用
- PC管理端及评委手机打分端的浏览器兼容问题
- ActiveMQ专题2 —— ActiveMQ下载和安装(Linux版)
- 笔记No.1——第一行代码:Android(第2版)
- USB转232和485的区别
- 博客营销自动赚钱系统
- 北邮计算机考研专业课分值,北邮计算机考研分数线
- 专用微处理器电源监控和看门狗芯片--MAX708
- 墙裂推荐7款办公必备软件,免费、小巧、好用
- h3c 模拟器 HCL 2.1.2 win10安装,vbox hyper-v vmware 兼容
热门文章
- struts2的登录注册 验证码 邮箱验证_Python+tkinter模拟京东登录时拖动图片式验证码...
- Java基础4IO技术
- 如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)
- HR 告诉你:用邮箱发简历应注意哪些
- 调度录音系统服务器应保持,调度录音系统服务器应保持频率同步。()
- 图谱:分布式架构知识体系
- 美颜相机-图片处理(迅速画出+多种滤镜)
- 【VC皮肤】skin++皮肤库使用
- Unity学习笔记—二次元日系游戏制作(理论篇)
- 如何制作高光谱三维图像