兔子问题,斐波纳契数列
来源:互联网 发布:父亲与女儿的界限知乎 编辑:程序博客网 时间:2024/05/03 22:50
题目:古典问题(斐波纳契数列):有一对兔子,从出生后3个月起每个月都生一对兔子,小兔子长到第三个月又会生一对兔子,假如兔子都不死,问每个月兔子总数?
分析规律:1 1 2 3 5 8 13 21…
从第二个月以后每个月兔子总数是前两个月兔子总数之和
1.递归算法:效率灰常低
package com.math.forth;/*** * 古典问题(斐波纳契数列):有一对兔子,从出生后3个月起每个月都生一对兔子,小兔子长到第三个月又会生一对兔子,假如兔子都不死,问每个月兔子总数? 分析:规律 * 1 1 2 3 5 8 13 21... 从第二个月以后每个月兔子总数是前两个月兔子总数之和 * * @author wql * */public class Math01 { public static void main(String[] args) { int month = 2;// 给一个月数 int sum;// 兔子总数 for (int i = 1; i <= month; i++) { sum = method(i); } System.out.println(sum); } public static int method(int month) { if (month <= 2) { return 1; } else { return method(month - 1) + method(month - 2); // 递归:这种方法效率非常低 } }}
2.利用时间的复杂度逻辑计算,效率灰常高(int类型都不可以满足运算)
package com.math.forth;/** * @author wql * */ public class Math01 { public static long method2(int month){ long a=1; long b=1; long c=0; if(month==1||month==2) { return 1; } else { for(int i=3;i<=month;i++) { c=a+b; b=a; a=c; } return a; } } public static void main(String[] args) { int month=100;//给一个月份 long sum=method2(100); System.out.println(sum); }}
阅读全文
1 0
- 兔子问题,斐波纳契数列
- 隔月生兔子 斐波纳契数列
- 费式数列:兔子问题
- 菲波拉契数列兔子繁殖问题
- 算法--兔子生兔子的问题(费氏数列)
- Fibonacci数列(兔子繁殖问题)
- Fibonacci数列(兔子繁殖问题)
- 兔子问题(斐波那契数列)
- 兔子问题--斐波那契数列
- 菲波拉契数列问题——兔子繁殖
- 斐波那契数列:兔子问题
- 兔子数列
- 斐波那契数列【黄金分割数列】-兔子问题
- 斐波纳契(兔子问题)
- 斐波那契数列(兔子问题)的变形
- java兔子问题(斐波那契数列)
- 从兔子产仔来看斐波那契数列问题
- 斐波那契数列--生兔子问题
- sotrm.yaml配置文件
- week1源码
- 大学生恋爱情况分析
- fibonacci数列计算
- POJ1654 Area(多边形面积,叉积求三角形面积)
- 兔子问题,斐波纳契数列
- RecyclerView.ItemDecoration
- HTML学习
- superMap iServer发布服务常见错误之isSucceed : false error : code: 400
- 1701H217.10.17 王建瑜 连续第七天
- JavaScript对象——不变性
- day02 pycharm的设置
- 数字摄像机常见术语和参数介绍
- Unity3D 小技巧