题目:古典问题:有一对兔子,从出生后第 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. android 获取位置数据库,尝试从webview获取位置时,Android“SQLite数据库无法从/CachedGeoposition.db加载”错误...
  3. Acwing 1085. 不要62
  4. 中兴没有云服务器_中国移动携手中兴通讯推进5G网络云建设
  5. simhash与Google的网页去重
  6. 《软件需求模式》阅读笔记二
  7. 第二周 SCRUM站立会议
  8. 路飞学城-Python爬虫集训-第一章
  9. php执行函数吗_php函数system
  10. 如何构建真实世界可用的 ML 模型?
  11. Builder 模式在 Guava 中的应用
  12. PC管理端及评委手机打分端的浏览器兼容问题
  13. ActiveMQ专题2 —— ActiveMQ下载和安装(Linux版)
  14. 笔记No.1——第一行代码:Android(第2版)
  15. USB转232和485的区别
  16. 博客营销自动赚钱系统
  17. 北邮计算机考研专业课分值,北邮计算机考研分数线
  18. 专用微处理器电源监控和看门狗芯片--MAX708
  19. 墙裂推荐7款办公必备软件,免费、小巧、好用
  20. h3c 模拟器 HCL 2.1.2 win10安装,vbox hyper-v vmware 兼容

热门文章

  1. struts2的登录注册 验证码 邮箱验证_Python+tkinter模拟京东登录时拖动图片式验证码...
  2. Java基础4IO技术
  3. 如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)
  4. HR 告诉你:用邮箱发简历应注意哪些
  5. 调度录音系统服务器应保持,调度录音系统服务器应保持频率同步。()
  6. 图谱:分布式架构知识体系
  7. 美颜相机-图片处理(迅速画出+多种滤镜)
  8. 【VC皮肤】skin++皮肤库使用
  9. Unity学习笔记—二次元日系游戏制作(理论篇)
  10. 如何制作高光谱三维图像