`

用递归与非递归实现斐波拉希数列

 
阅读更多

如下:

package com.test;

public class TestFb {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(FB(6));
		System.out.println(FC(6));
	}

	/**
	 * 递归实现斐波拉希数列
	 * @param n
	 * @return
	 */
	public static long FB(int n){
		if(n==1 || n==2){
			return 1L;
		}else{
			return FB(n-1) + FB(n-2);
		}
	}
	/**
	 * 非递归实现斐波拉希数列
	 * @param n
	 * @return
	 */
	public static long FC(int n){
		if(n==1 || n==2){
			return 1L;
		}
		
		long f1 = 1L;
		long f2 = 1L;
		long f = 0;
		for(int i=0;i<n-2;i++){
			f = f1 + f2;
			f1 = f2;
			f2 = f;
		}
		return f;
	}
}

 

分享到:
评论

相关推荐

    计算斐波拉且数列.zip

    这个压缩包文件“计算斐波拉切数列.zip”显然与C语言编程相关,内容可能是关于如何使用C语言编写程序来计算斐波那契数列。 斐波那契数列的定义是这样的:数列中的每个数字是前两个数字的和,通常以0和1作为起始项,...

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

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

    斐波拉切堆栈c++

    本示例中提到的是使用递归算法模拟堆栈来实现斐波拉切数列。递归是一种函数调用自身的技术,它能够使问题的解决方案简洁明了,但可能会导致大量的重复计算,尤其是在处理大数时,效率较低。 堆栈(Stack)是计算机...

    斐波拉切数列

    这是一道求斐波拉切数列的题,一般求斐波拉切很简单,用递归就可以,可是当求很大的斐波拉切数时,递归就会超时。

    非递归实现fibonacci数列

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

    递归求非波拉锲数列源码

    在VB(Visual Basic)编程环境中,我们可以用递归函数来实现非波拉锲数列的计算。 首先,我们需要理解递归的基本概念。递归是一种解决问题的方法,它通过调用自身来解决子问题,直到达到基本情况,然后返回结果。在...

    快速选择非递归与递归算法实现

    空间复杂度方面,非递归实现主要取决于分区操作和栈的使用,而递归实现则依赖于递归深度,一般情况下都是O(log n)。 在实际编程中,可以根据具体需求选择非递归或递归实现。非递归版本更适合内存有限或者递归深度...

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

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

    ackermann函数的递归实现和非递归实现

    非递归实现的基本思想是将递归调用转化为循环,并使用数据结构(如堆栈)存储中间结果,避免了递归带来的调用栈溢出问题。 非递归实现的步骤大致如下: 1. 初始化一个堆栈,用于保存待处理的阿克曼函数参数对`(m, ...

    C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法

    本文实例讲述了C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法。分享给大家供大家参考,具体如下: /*求二叉树叶子节点个数 -- 采用递归和非递归方法 经调试可运行源码及分析如下: ***/ #include #...

    分别用递归和非递归方法实现二分查找算法 的完整程序

    分别用递归和非递归方法实现二分查找算法 的完整程序,indexof()返回的是循环实现的二分法查找,getindex()实现的是递归算法实现的二分法查找。

    二叉树的创建与三种遍历的递归与非递归实现

    二叉树的创建与三种遍历的递归与非递归实现 包括二叉树的动态创建,前序遍历,中序遍历,后续遍历的递归与非递归方法的实现。

    用递归和非递归算法实现二叉树的三种遍历

    递归实现较为直观,而非递归实现需要更深入的理解和技巧,通常涉及栈的使用。 递归算法通常简洁,但对于大型树可能会导致栈溢出。非递归算法虽然代码更复杂,但避免了这个问题,并且在处理大规模数据时可能更有效率...

    Fibonacci递归与非递归实现

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

    c++合并排序算法递归与非递归方式

    c++实现的合并排序算法 用递归和非递归两种方式实现的

    快速排序算法设计与分析总结 二叉树与树的转换前序、后序的递归、非递归算法,层次序的非递归算法的实现

    快速排序算法设计与分析总结 二叉树与树的转换前序、后序的递归、非递归算法,层次序的非递归算法的实现 二叉树与树的转换前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现 实现树与...

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

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

    八皇后递归及非递归实现源码

    八皇后递归及非递归实现源码; 八皇后递归及非递归实现源码

    fibnacci数列的递归实现

    fibnacci数列,通过递归的方式来实现

    java实验一(斐波拉列数列、位运算).rar

    实验要求我们用迭代循环法和递归法分别实现计算斐波那契数列的前10项。 1. 迭代循环法: 迭代法是一种从基础情况开始逐步推进的方法,通常使用循环结构实现。对于斐波那契数列,我们可以先初始化前两个数为0和1,...

Global site tag (gtag.js) - Google Analytics