斐波那契数列
来源:互联网 发布:腾讯微信数据报告 编辑:程序博客网 时间:2024/05/22 08:19
1 介绍
Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3。 计算第n项Fibonacci数值。
2 实现
/** * * @author xld * */public class FibonacciSequence { // 定义全局数组,承装斐波那契数列 private static int memo[]; /** * 动态规划 从底向上 解决问题 * * @param n * @return */ public static int feibo(int n) { memo[0] = 0; memo[1] = 1; for (int i = 2; i <= n; i++) { memo[i] = memo[i - 1] + memo[i - 2]; } return memo[n]; } /** * 记忆话搜索 自顶向下解决问题 * * @param n * @return */ public static int feibo2(int n) { if (n == 0) return 0; if (n == 1) return 1; if (memo[n] == -1) memo[n] = feibo2(n - 1) + feibo2(n - 2); return memo[n]; } /** * 测试1 * * @param args */ public static void main1(String[] args) { int n = 100; memo = new int[n + 1]; long startTime = System.currentTimeMillis(); int ret = feibo(n); long endTime = System.currentTimeMillis(); System.out.println("斐波那契数列第n个元素为:" + ret); System.out.println("运行时间" + (endTime - startTime)); } /** * 测试2 * * @param args */ public static void main(String[] args) { int n = 10; memo = new int[n + 1]; for (int i = 0; i < memo.length; i++) memo[i] = -1; long startTime = System.currentTimeMillis(); int ret = feibo2(n); long endTime = System.currentTimeMillis(); System.out.println("斐波那契数列第n个元素为:" + ret); System.out.println("运行时间" + (endTime - startTime)); }}
阅读全文
0 0
- 斐波那契数列数列计算
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 应用解决告诉你什么时候该用ajax
- 交错序列
- understanding-jvm-internals
- redis笔记-2-java
- vyos
- 斐波那契数列
- 1008.Elevator
- OpenJudge百炼-2951&PKU-1001-浮点数高精度幂-C语言-高精度计算
- Cheat Engine游戏脚本修改器通关教程(脑残版)
- 安装anaconda及修改conda config 的channels/default_channels
- hibernate的主键生成策略
- Markdown学习1
- valgrind——Linux下内存泄漏检测工具
- hadoop 集群 多 nameservices 多节点 集群搭建 过程---第二版