【Java】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
需求:
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
分析:
这是一个斐波那契数列数列问题
同样,它的突破口在三个月之后开始,界定第一个月数目为1,第二个月也是1,从第三个月开始计算第一次出生的兔子数
月份 | 对数 |
1 | 1 |
2 | 1 |
3 | 2 |
4 | 3 |
5 | 5 |
6 | 8 |
7 | 13 |
...... | ...... |
通过分析,可以看出当月份为n时,兔子的对数为前两个之和,设对数为函数f(n),则有:
f (n) = f(n-1)+ f(n-2);
这是一个斐波那切数列,所以转化为求解斐波那切数列问题;
代码实现:
import java.util.Scanner;public class Test {public static void main(String[] args) {System.out.println("请月份数:");Scanner s = new Scanner(System.in);int n = s.nextInt();System.out.println("总数:"+"\n"+f(n));}public static int f(int n) {if(n!=1&&n!=2) {if(n!=3) {return f(n-1)+f(n-2);}return 2;}else return 1;}}
分析:
- 首先,当位数为1时返回值为1;位数为2时返回1;当位数为3时,其返回值为2;因为他们是起始值;
- 然后,当位数为4时,其返回值 = 3 = 2 + 1;
当位数为5时,其返回值 = 5 = 3 + 2;
当位数为6时,其返回值 = 8 = 5 + 3;
当位数为7时,其返回值 = 13 = 8 + 5;
当位数为8时,其返回值 = 21 = 13+8;
......
所以由以上可得,大于等于3的情况下,当前位数的值
f (n) = f(n-1)+ f(n-2)。
输出示例为
请月份数:
7
总数:
13
【Java】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?相关推荐
- 【python进阶】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
古典问题: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 方法一:简单方法 month = int(input( ...
- C语言实现,古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可) 程序分析:兔子 ...
- 【C语言】题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?((输出前40个月) 题目分析: 由题意 ...
- 古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可) 先将前几个月的兔子数量 ...
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少(计算30个月的)?
public static void main(String[] args) {/** 9.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,* 假如 ...
- Java基础算法题(02):古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
查看所有50道基础算法题请看: Java的50道基础算法题 递归的方法 package Demo02Rabbits; import java.util.Scanner; public class Ra ...
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子 ,假如兔子都不死,问每个月的兔子总数为多少
思路分析: 月份 兔子数 说明 1 1(对) 从开始有一对兔子 2 1 3 1+1 ...
- Java古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 由图可知, 第一个月是小兔子,是一对小兔子 第二个月从小兔子变成大 ...
- 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月的兔子对数为多少?
古典问题 需求 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子假如兔子都不死,问第n个月的兔子对数为多少? 问题分析 预想效果 代码实现 (~~~~ ...
最新文章
- 解决windows远程(Telnet)最大连接数的问题
- html5 type submit,input type=submit
- .NET项目版本号的小随笔
- 【解决问题】idea启动本地tomcat访问localhost:8080报404错误
- 安装 Win10 Ubuntu 16.04 双系统以及 Ubuntu 配置深度学习环境记录
- oracle 由32位迁移到64位的问题
- 如何做实时监控?—— 参考 Spring Boot 实现
- word排版快捷指令_Word怎么快速排版?这12招Word排版小技巧,3分钟完成一个Word文档...
- 电磁场与电磁波_您的大脑在电磁场上
- 深度学习--卷积神经网络
- OpenGL画三角形
- CTF|pwn栈溢出入门题level3解题思路及个人总结
- 【Unity】【Wwise】在Unity中获取某个Wwise事件的持续时间
- python爬虫反爬 css 知乎 专栏_python爬虫反反爬 | 像猫眼电影、大众点评等自定义 css 加密字体怎么破?...
- 初中数学结合计算机教学设计,初中数学课教学设计与信息技术的有效整合-精选教育文档...
- (最新react-native-0.59.5) 如何将ReactNative项目集成到现有得Android项目中(两种实现方法之一)
- 微信小程序在wxml页面中截取字符串
- js 将秒或毫秒 转化为时分秒格式
- Kinetis---TWR-KM34Z75M---AFE
- 帧动画和补间动画看这篇足够了
热门文章
- java测试驱动开发_java测试驱动开发(TDD)之《遥控军舰》
- 国外.edu邮箱,免费.edu教育邮箱申请
- 星梦PbootCMS安装方法及一些手册里没写到的东西
- java jar 签名_JAR包数字签名与验证
- java中多线程之CAS(compareAndSet),Unsafe类大白话详解.
- 橙光古风背景素材下载
- 用计算机能开通余利宝吗,余利宝怎么开通 余利宝开通流程和方法介绍
- textarea 去除边框
- 激活office提示“没有文件扩展.vbs引擎”
- 硬盘分区2----GPT与MBR的区别