java代码--Fibonacci数列(递归与非递归效率)
来源:互联网 发布:淘宝上架宝贝无商标 编辑:程序博客网 时间:2024/05/18 11:41
程序名称:Fibonacci.java
程序内容:
package firststudy;/** * 计算 Fibonacci 数列的 第40个值 * 即: 1,1,2,3,5,8.....第40个值. * 满足递推公式: F1 = 1, F2 = 1, Fn = F (n-1) + F (n-2) * @author web * */public class Fibonacci {public static void main(String[] args) {int num = 40;long startTime = System.currentTimeMillis();for(int i=1; i<=num; i++) {System.out.print(method(i) + "\t");if(i % 5 == 0) {System.out.println();}}long endTime = System.currentTimeMillis();long time = endTime - startTime;System.out.println("递归用时:" + time + "毫秒");startTime = System.currentTimeMillis();for(int i=1; i<=num; i++) {System.out.print(method1(i) + "\t");if(i % 5 == 0) {System.out.println();}}endTime = System.currentTimeMillis();time = endTime - startTime;System.out.println("非递归用时:" + time + "毫秒");startTime = System.currentTimeMillis();System.out.println(method(num));endTime = System.currentTimeMillis();time = endTime - startTime;System.out.println("递归用时:" + time + "毫秒");startTime = System.currentTimeMillis();System.out.println(method1(num));endTime = System.currentTimeMillis();time = endTime - startTime;System.out.println("非递归用时:" + time + "毫秒");}/** * 递归方式 * @param num * @return */public static long method(int num) {if(num == 1 || num == 2) {return 1;}else {return method(num-2) + method(num-1);}}/** * 非递归方式 */public static long method1(int num) {if(num == 1 || num == 2) {return 1;}long f1 = 1L;long f2 = 1L;long f = 0;for(int i=0; i<num-2; i++) {f = f1 + f2;f1 = f2;f2 = f;}return f;}}
运行结果:
0 0
- java代码--Fibonacci数列(递归与非递归效率)
- fibonacci数列 (递归与非递归)
- Fibonacci数列的递归与非递归实现
- fibonacci数列的递归与非递归实现
- Fibonacci数列的递归与非递归实现
- Fibonacci数列的递归与非递归实现算法详解
- 求fibonacci数列(递归+非递归)
- Fibonacci数列的递归和非递归
- 菲波拉契数列Fibonacci递归和非递归
- Fibonacci数列的非递归实现(Java版)
- Fibonacci数列的非递归实现
- fibonacci 数列的非递归算法
- Fibonacci数列非递归解法 C++实现
- 递归效率与非递归效率
- java打印输出如下形式数列递归与非递归
- Java面试之斐波纳契数列递归与非递归实现
- Java面试之斐波纳契数列递归与非递归实现
- Fibonacci(斐波那契)数列的递归与非递归实现 python
- 【Android自定义View】安卓制作自定义控件
- php-cgi相关概念以及php运行模式
- HTML5游戏引擎lufylegend深入浅出 - 引擎介绍&原理
- autowired 和Resourse的差别
- js与el小解
- java代码--Fibonacci数列(递归与非递归效率)
- mysql
- 體影之道
- HorizontalScrollView 实现水平滚动
- bootstrap 一些有趣的用法
- iOS中block实现的探究
- POJ 3469 --Dual Core CPU【最小割】
- ARM mbed平台WIZwiki-W7500使用说明
- ssh之spring