经典兔子问题

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

#解题思路 我们可以观察到第一个月1对兔子,第二个月1对兔子,第三个月2对兔子,第三个月3对兔子,第四个月5对,第六个月8对,以此类推,我们可以得到一个规律,1,1,2,3,5,8,13…

经过推导我们发现从第三个月开始,当前月的总数等于前两个月的总数相加,即f(x)=f(x-1)+f(x+2);

方法一:我们先从基本Java编程开始

public static void main(String[] args) {int f1=1;int f2=1;int f;for (int i = 3; i <20; i++) {f=f1+f2;System.out.println("第"+i+"月总数为"+f);int t;t=f2;f2=f;f1=t;}
}

方法二:我们用递归算法来求解

public static void main(String[] args) {
for (int i = 1; i < 20; i++) {System.out.println("第"+i+"月的兔子总数为"+f(i));}}public static int f(int x) {if (x==1||x==2) {return 1;}else {return f(x-1)+f(x-2);}
}

经典兔子问题java解决相关推荐

  1. 兔子生兔子的Java解决方式

    最近在学python,其中有这样一道题 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 没有做出来,先用 ...

  2. 经典田忌赛马算法JAVA解决代码

    题记:现在很多经典的故事都被变成程序员的考试题,前几天女朋友面试题就碰到了,后来跟我说了,自己也做了下,那么下面就先来温习下这个故事^.^: 田忌赛马出自<史记>卷六十五:<孙子吴起 ...

  3. java古典兔子问题c语言,Java递归算法经典实例(经典兔子问题)

    Java递归算法经典实例(经典兔子问题) 题目:古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:首先我们要明白题目的意思 ...

  4. java 例子一对小兔子,Java解决标题:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子。...

    Java解决题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子... 题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生 ...

  5. java 打开指定文件,java解决指定应用程序打开指定文件

    java解决指定应用程序打开指定文件 //打开工具的路径及名字 String toolsPath = "D:/office/Office12/WINWORD.EXE"; //被打开 ...

  6. java解决错误经验_在Java错误进入生产之前的新处理方式

    java解决错误经验 我们如何认识到解决预生产错误的旧方法还不够,以及我们如何能够改变它 第一次尝试就没有完美的代码,我们所有人都可以证明我们已经通过艰苦的努力学习了. 不管我们使用多少测试周期,代码 ...

  7. 设计一个名为complex的类来表示复数_complex类java解决

    作者:wzu_cza123 出自:CSDN 原文:blog.csdn.net/wzu_cza123/article/details/108857953?utm_medium=distribute.pc ...

  8. Java 解决跨域问题

    JAVA | Java 解决跨域问题 文章目录 JAVA | Java 解决跨域问题 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一.使用Filter ...

  9. Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

    Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 参考文章: (1)Java解决Hash(散列)冲突的四种方法--开放地址法 ...

最新文章

  1. IDEA 连接 GIT OSCHINA 提交本地已存在的项目
  2. 从更底层研究C\C++动态内存分配
  3. python使用matplotlib画图,绘制三维、二维曲线。设置字体大小以及坐标系间距等
  4. Java8 新特性lambda表达式(一)初始
  5. C/C++ strict-aliasing
  6. Python—实训day4—爬虫案例3:贴吧图片下载
  7. 数字图像处理基本原理和常用方法
  8. 《Windows 8 权威指南》——2.10 几招解决Windows 8 Metro应用打不开的问题
  9. 目标检测|YOLOv2原理与实现(附YOLOv3)
  10. c++ 创建文件夹_C/C++编程笔记:vscode搭建C/C++环境,初学编程可收藏
  11. 联想本win10 virtualbox 安装centos
  12. 实型变量(浮点型变量)、字符型数据、字符串常量(变量)、字符常量(变量)
  13. windows 10最新版 电脑共享WIFI
  14. Python制作CSDN数据中心——CSDN机器人访客
  15. 为什么要将数据序列化?
  16. 蓝桥杯 算法训练 一元三次方程求解
  17. Linux/服务器中文件下载
  18. 硬件知识(一)无源RC一阶滤波电路
  19. 【Java 设计模式】UML 之类图
  20. BeanUtils之populate的用法

热门文章

  1. 在虚拟机上同步服务器上的时间_Hbase
  2. PCB线路板为何板层数越高制作难度也越高?
  3. RedHat Linux 9.0 安装教程(全程图解)
  4. linux下硬盘拷贝
  5. android微信怎么建群,微信可以建群吗 图文教你微信怎么建群
  6. 转:腾讯4亿元投资KakaoTalk(韩国微信) 后者去年亏损7600万元
  7. 产品经理如何入门,没人带的情况下如何学习?
  8. 【算法】二分答案法--暴力搜索答案方法
  9. 20行Python代码爬取2W多条音频文件素材【内附源码+详细解析】新媒体创作必备
  10. C++有符号和无符号之间的转换