`
edgar108
  • 浏览: 33416 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

递归和非递归实现斐波那契序列

    博客分类:
  • java
阅读更多
package com.edgar;

public class TestFibonacci {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long start1 = System.currentTimeMillis();
		System.out.println(fibonacci(40));
		long end1 = System.currentTimeMillis();
		long start2 = System.currentTimeMillis(); 
		System.out.println(fibonacci2(40));
		long end2 = System.currentTimeMillis();
		
		System.out.println(end1-start1);
		System.out.println(end2-start2);
	}
	
	public static int fibonacci(int n){
		
		if(n ==0){
			return 0;
		}
		else if(n ==1 ||n==2){
			return 1;
		}
		else{
			return fibonacci(n-1)+ fibonacci(n-2);
		}
	}
	//  1 1  2  3  5  8 13
	//  1 2  3  4  5  6
	public static int fibonacci2(int n){
		if(n ==0){
			return 0;
		}
		else if(n ==1 ||n==2){
			return 1;
		}
		else{
			int temp1 =  1;
			int temp2 = 1;
			int temp = 0;
			for(int i=3;i<=n;i++){
				temp =  temp1+  temp2;			
			    temp2 = temp1;
			    temp1 = temp;
			}
			
			return temp;
		}
	}

}

分享到:
评论

相关推荐

    非递归实现fibonacci数列

    使用C++非递归实现fibonacci数列,对正在学习算法的同学应该挺有帮助的

    C++实现Fibonacci数列递归及非递归算法

    本文将探讨如何使用C++语言来实现Fibonacci数列的递归和非递归算法。 **递归算法** 递归是一种解决问题的方法,它定义一个函数或过程通过调用自身来解决问题。对于Fibonacci数列,递归实现非常直观: ```cpp int ...

    Labview实现递归:斐波那契数列

    斐波那契数列: 在数学上它以递归的方式进行定义,指这样的一个数列:0、1、1、2、3、5、8、13、21、34、55、89、144……,即前两个数为分别为0和1...本例为LabVIEW中编写递归VI实现求解斐波那契数列Fib(n)中第n项的值

    华为题(斐波那契数列非递归)[定义].pdf

    华为题(斐波那契数列非递归) ...结论:本文总结了斐波那契数列的定义、非递归实现、栈数据结构、malloc和realloc函数、斐波那契数列的应用和软件网络技术等知识点,并对斐波那契数列的实现和应用进行了深入探讨。

    Fibonacci数列(非递归的函数调用)

    斐波那契数列是一个经典的数学概念,在计算机科学...了解和实践非递归的斐波那契数列计算,对于提升C++编程技能和算法理解能力非常有帮助。在实际项目中,类似的方法也可以应用于其他需要高效计算序列或序列项的问题。

    Fibonacci递归与非递归实现

    Fibonacci数列的java实现,包括递归与非递归实现

    Java实现用递归算法和非递归算法求解斐波那契数列问题.docx

    ### Java实现用递归算法和非递归算法求解斐波那契数列问题 #### 知识点解析 在给定的文档标题与描述中,“Java实现用递归算法和非递归算法求解斐波那契数列问题”明确指出了本文将围绕Java编程语言、递归算法与非...

    JAVA递归与非递归实现斐波那契数列

    在Java中,斐波那契数列可以用递归和非递归两种方法来实现。 1. **递归实现**: 递归实现是最直观的方式,它通过函数自身调用来解决问题。在上述代码中,`feibonaci1` 方法就使用了递归。当计算 `feibonaci1(n)` ...

    菲波拉契数列的递归与非递归算法

    本篇文章将深入探讨斐波那契数列的递归与非递归算法实现方法,并通过具体的代码示例来帮助读者理解这两种方法的特点和适用场景。 #### 二、斐波那契数列定义 斐波那契数列是由以下递推公式定义的数列: \[ F(n) = ...

    斐波那契递归时间和非递归时间的比较(csdn)————程序.pdf

    在这个文档中,作者比较了两种计算斐波那契数列的方法:递归和非递归(也称为迭代)。递归方法通常更直观,但效率较低,而迭代方法虽然稍显复杂,但在处理大数时更有效率。 递归算法是通过调用自身来解决问题的。在...

    java用非递归的方法打印Fibonacci数列

    Java 中的 Fibonacci 数列是通过非递归的方法来实现的,该方法使用循环来计算 Fibonacci 数列的每个元素,而不使用递归函数。 Java 中的 Fibonacci 数列的定义是从 0 开始的,第一个 Fibonacci 数是 0,第二个是 1...

    算法基础与递归-百积问题-递归求公约数-求阶乘-斐波那契数列

    * 通过递归和非递归方法实现最大公约数的计算 * 通过递归和非递归方法实现阶乘的计算 * 实现斐波那契数列的计算 * 实现汉诺塔问题的解决 四、代码实现 下面是实验的代码实现: 1. 汉诺塔问题的解决 ```c void ...

    c#斐波那契数列(Fibonacci)(递归,非递归)实现代码

    在C#中,斐波那契数列可以通过两种主要方法实现:递归和非递归(或迭代)。 1. **递归实现**: 递归实现是最直观的方法,它通过调用自身来计算数列中的下一个数字。在提供的代码中,`TopDownRecursion`函数就是递归...

    斐波那契数列(fibonacci)-java实现-非递归

    斐波那契数列(fibonacci)-java的非递归实现。

    组合数学fibonacci数列递归非递归求解

    ### Fibonacci数列的非递归求解方法 非递归方法避免了递归方法的重复计算问题,提高了计算效率。给定文件中的第二个示例展示了如何使用循环结构来求解Fibonacci数列: ```c #include void main() { int n; scanf...

    递归求非波拉锲数列源码

    非波拉锲数列,又称为“非帕斯卡三角数列”,是数学中的一个数列,与著名的帕斯卡三角形相对。...在提供的文件"递归求非波拉锲数列.txt"中,应包含了具体的VB源代码实现,读者可以详细查看并学习其中的编程技巧和思路。

    斐波那契数列(前100项).rar

    斐波那契数列是一个经典的数学概念,在计算机科学和编程...通过这个例子,我们可以深入理解递归和非递归算法,以及如何在C语言中实现这些算法。同时,这也是一个很好的机会去探讨算法优化、数据结构和问题解决技巧。

    斐波那契非递归 C语言源码 大数加法

    非递归的斐波那契数列算法通常采用迭代或矩阵乘法。在给定的描述中,我们关注的是迭代方法,并且特别强调了大数加法。由于普通的整型变量无法存储超过一定范围的数字,所以我们需要使用字符串来表示大数。以下是一个...

Global site tag (gtag.js) - Google Analytics