`

简单的递归转非递归例子 Fibonacci

    博客分类:
  • Java
阅读更多
package org.vocano.java.tst.recursion;

public class Fibonacci {
	
	public static int recursive(int n) {
		if(n < 2) return 1;
		return recursive(n-2) + recursive(n-1);
	}
	
	public static int directly(long n) {
		if(n < 3) return 1;
		int result = 0;
		int a1 = 1, a2 = 1;

		for (int i = 2; i <= n; i++) {
			result = a2 + a1;
			a1 = a2;
			a2 = result;
		}
		return result;
	}

	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		System.out.println(recursive(40));
		long end = System.currentTimeMillis();
		System.out.println(end - start);
		System.out.println(directly(40));
		System.out.println(System.currentTimeMillis() - end);
	}
} /* output:
165580141
1401
-1109825406
0
*///:~

 

分享到:
评论

相关推荐

    python动态规划算法实例详解

    如果大家对这个生僻的术语不理解的话,那就先听小编给大家说个现实生活中的实际案例吧,...练习:使用递归和非递归的方法来求解斐波那契数列的第 n 项 代码如下: # _*_coding:utf-8_*_ def fibnacci(n): if n == 1

    C++数据抽象和问题求解(第6版).[美]Frank M. Carrano(带详细书签).pdf

    ◆ 重点是核心的数据结构,而不是非必要的C++语言语法 ◆ 说明了类和ADT在问题解决过程中的作用 ◆ 诠释了ADT的主要应用,如查找航班图、事件驱动的模拟和八皇后问题 ◆ 大部分章节中的例子都使用了标准模板库...

    计算机要学哪些东西----(还有附赠哦)

    1. 通过例子说明图论的基本术语,各自的性质和特殊情况。 2. 说明树和图的不同遍历方法。 3. 使用图和树为计算机科学中的问题建模。 4. 把图和树与数据结构、算法和计算相联系。 DS6.离散概率[核心] 主题: ...

    C++大学教程,一本适合初学者的入门教材(part2)

    13.5 简单异常处理例子:除数为o 13.6 抛出异常 13.7 捕获异常 13.8 再抛出异常 13.9 异常指定 13.10 处理意外异常 13.11 堆栈解退 13.12 构造函数、析构函数与异常处理 13.13 异常与继承 13.14 处理new...

    C++大学教程,一本适合初学者的入门教材(part1)

    13.5 简单异常处理例子:除数为o 13.6 抛出异常 13.7 捕获异常 13.8 再抛出异常 13.9 异常指定 13.10 处理意外异常 13.11 堆栈解退 13.12 构造函数、析构函数与异常处理 13.13 异常与继承 13.14 处理new...

    最新go语言中文教程及手册(强烈推荐)

    Go 编程语言是一个使得程序员更加有效率的开源项目。Go 是有表 达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核 和网络应用,而新的类型系统允许构建有性的模块化程序。Go ...

    Python核心编程第二版(ok)

     11.6.1 非关键字可变长参数(元组)   11.6.2 关键字变量参数(字典)   11.6.3 调用带有可变长参数对象函数   11.7 函数式编程   11.7.1 匿名函数与lambda   11.7.2 内建函数apply().cfilter...

    Python核心编程第二版

     11.6.1 非关键字可变长参数(元组)   11.6.2 关键字变量参数(字典)   11.6.3 调用带有可变长参数对象函数   11.7 函数式编程   11.7.1 匿名函数与lambda   11.7.2 内建函数apply()、filter...

    C++大学教程

    1.15 简单程序:打印一行文本-------------------------------------------12 1.16 简单程序:两个整数相加-------------------------------------------15 1.17 内存的概念----------------------------------...

    《数据结构 1800题》

    14.以下数据结构中,(A )是非线性数据结构【中山大学 1999 一、4】 A.树 B.字符串 C.队 D.栈 15. 下列数据中,(C )是非线性数据结构。【北京理工大学 2001 六、1(2分)】 A.栈 B. 队列 C. 完全二叉树 ...

Global site tag (gtag.js) - Google Analytics