`
BabyDuncan
  • 浏览: 584241 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

迭代方法求斐波那契数列(代替递归)

    博客分类:
  • J2SE
J# 
阅读更多

public class FibonacciNotDigui {

	/**
	 * 非递归的方法解决斐波那契数列问题
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			long result = fibonacci(40);
			System.out.println(result);
	}

	private static long fibonacci(int i) {
		// TODO Auto-generated method stub
		if(i==1||i==2)
		return 1L;
		else{
			long l1 = 1L;
			long l2 = 1L;
			long l3 = 0L;
			for(int j=0;j<i-2;j++){
				l3 = l1+l2;
				l1 = l2;
				l2 = l3;
				
			}
			return l3;
		}
		
			
	}

}



每次相加都是前一个加上前面第二个,如果是第N个数,那么循环n-2次,每次循环,都应该更新一下l1,l2,就是依次往后挪一个数。
根据这个函数,第四十个数是:102334155
第48个数是:4807526976
分享到:
评论

相关推荐

    编写函数f,功能是用递归的方法求斐波那契数列的第n项

    【问题描述】编写函数f,功能是用递归的方法求斐波那契数列的第n项,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f求出斐波那契数列的第n项,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,...

    递归方法实现斐波那契数列_递归方法实现斐波那契数列_python_源码

    递归、动态规划和迭代是三种常见的解决斐波那契数列问题的方法。每种方法都有其优缺点:递归直观但效率低;动态规划减少了重复计算,提高了效率;迭代方式则避免了堆栈空间的问题,适用于大规模的n值。在实际编程中...

    Fibonacci数列的四种解法:递归、存储优化的递归、自下而上的递归(迭代法)、尾递归

    fibonacci数列的各种解法,递归、存储优化的递归、自下而上的递归(迭代法)、尾递归。其中分析内容请移步我的博客、

    迭代斐波那契额数列C语言

    以下是C语言实现迭代斐波那契数列的一个基本框架: ```c #include // 函数声明 int fibonacci(int n); int main() { int n, fib; printf("请输入要计算的斐波那契数列项数:"); scanf("%d", &n); // 检查...

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

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

    C++:斐波那契数列(迭代和递归)

    我们可以使用两种主要方法在C++中实现斐波那契数列:迭代和递归。 **迭代法**: 迭代法是通过循环结构来计算斐波那契数列的一种高效方式。这种方法避免了递归带来的栈空间开销,适用于较大的数列项。下面是一个使用...

    算法设计实验报告之多种方法求解斐波那契数列

    4. **基于矩阵乘法的公式**:根据《算法导论》2.5.2章节,可以利用矩阵快速幂的方法计算斐波那契数,其时间复杂度远低于递归和迭代,大约为O(logN)。 实验要求还包括: - 设计用户界面,最好为图形化,方便用户...

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

    在C++编程中,理解并能够实现斐波那契数列是基本功,它可以帮助开发者掌握迭代、循环控制和高效算法设计等概念。此外,斐波那契数列还常用于测试计算机性能、理解和应用动态规划等问题。 了解和实践非递归的...

    java实现Fibonacci数列

    实现Fibonacci数列的常见方法有两种:递归和迭代。 ##### 2.1 递归方法 递归方法是直接按照Fibonacci数列的定义来实现的,即`fib(n) = fib(n-1) + fib(n-2)`。这种方法直观但效率较低,尤其是当计算较大的`n`时,会...

    用Python轻松实现斐波那契数列-递归函数详解!

    总结起来,Python提供了多种方法来实现斐波那契数列,包括递归、动态规划和迭代。虽然递归方法简洁易懂,但其效率较低,适合小规模问题;动态规划和迭代方法则在效率上更有优势,尤其对于大规模计算。在实际编程中,...

    c++用递归的方法编写函数求Fibonacci级数_递归_

    在编程领域,Fibonacci数列是一个非常经典的问题,它被广泛用于教学和理解递归概念。递归是一种解决问题的方法,它将问题分解为更小的子问题,直到子问题简单到可以直接解决。C++是一种强大的面向对象的编程语言,...

    求解fibonacci数列的前20项

    最直观的求解Fibonacci数列的方法就是使用递归。这种方法简单明了,但是效率较低,因为存在大量的重复计算。对于较大的数值,递归方法可能导致栈溢出等问题。 #### 迭代方法 迭代方法是一种更高效的解决方式,它...

    斐波那契数列java代码 FibonacciProblem

    包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。 包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。 包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。...

    汇编语言,计算斐波那契数列的前22项,斐波那契数列,分别用两种方法:递归调用,普通循环加法

    在本文中,我们将深入探讨如何使用汇编语言来计算斐波那契数列的前22项,并且对比两种不同的实现方法:递归调用和普通循环加法。首先,让我们了解一下斐波那契数列的基本概念。 斐波那契数列是一个数学上的序列,...

    在php中用递归和迭代法求斐波纳挈数列

    斐波那契数列,又称黄金分割数列,斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 这个数列从第三项开始,每一项都等于前两项之...我上传的是用php中,用递推和迭代求斐波那契数列

    递归斐波那契数列

    在王小东的《算法设计与分析》中,他可能讲解了如何用递归方式来实现斐波那契数列。 在C语言中,我们可以编写一个递归函数来计算斐波那契数列的第n项。以下是一个简单的递归实现: ```c #include int fibonacci...

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

    通过对斐波那契数列递归与非递归算法的分析比较,我们可以得出以下结论: 1. **递归算法**:虽然简单直观,但由于其高时间复杂度和潜在的栈溢出风险,不适合处理大规模数据。 2. **非递归算法**:通过迭代的方式...

    求Fibonacci数列问题,本程序中只求20个数,可以自己修改。

    斐波那契数列(Fibonacci Sequence)是数学领域中的一个重要概念,它在计算机科学,尤其是算法设计中有着广泛的应用。斐波那契数列的定义是:第一项F0为0,第二项F1为1,之后的每一项Fi(i&gt;1)都是前两项的和,即Fi ...

    python斐波那契数列第n项.docx

    这种方法基于斐波那契数列的定义,通过递归调用自身来计算每一项。代码如下: ```python def fibonacci(n): if n return n else: return fibonacci(n-1) + fibonacci(n-2) ``` 虽然递归方法直观易懂,但...

Global site tag (gtag.js) - Google Analytics