非常经典的JAVA编程题(兔子规律)
2016-04-28 17:28
525 查看
代码下载:https://github.com/IsResultXaL/Algorithm/blob/master/src/rabbit.java
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21….
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21….
/** * 兔子问题 * 斐波那契数列求值 * @author Administrator *题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, *小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? *1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... */ public class rabbit { public static void main(String[] args) { MyFunction(20); } //我自己写的方法 public static void MyFunction(int months){ int lastLastGiveBirth=0; //上上个月可生育的兔子数量 int lastGiveBirth=0; //上个月可生育的兔子数量 int count = 1; //总数量 初始化为一对兔子 for(int month = 1;month<=months;month++){ int giveBirth = lastGiveBirth+lastLastGiveBirth; if(month==3){ giveBirth = 1; } lastLastGiveBirth = lastGiveBirth; lastGiveBirth = giveBirth; count = count+giveBirth; System.out.println("第"+month+"个月的兔子对数:"+count); } } //递归方法实现(我认为好的方法) public static int fib(int month){ if(month == 1 || month == 2){ return 1; }else{ return fib(month-1)+fib(month-2); } } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树