`
leozam
  • 浏览: 29345 次
社区版块
存档分类
最新评论

高效率斐波那契代码

 
阅读更多
斐波那契数列
1 1 2 3 5 8 13 21...
即每一项都是前两项之和的数列
经典解法是使用递归
不过递归的效率太低,推荐如下代码,只需2个变量存值,效率高
int fibonacci(int n){
	int a=1,b=1;
	for(int i=2;i<n;i++){
		//交换a和b,更新a的值
		a=a^b;
		b=a^b;
		a=a^b;
		//更新b的值
		b=a+b;
	}
	return b;
}

(假设n>0,故没有对n<=0的情况做处理)
分享到:
评论

相关推荐

    几种常用算法计算斐波那契数列的时间效率比较VC++6.0

    但是,由于递归调用的开销,这种方法的时间复杂度非常高,为O(2^n),尤其是当n值增大时,性能急剧下降,不适合处理大数值的斐波那契数。 接着是迭代法,也称为循环法,它避免了递归带来的额外开销。迭代法通过循环...

    java代码实现斐波那契数列输出第n个数

    以下是一个简单的Java代码示例,使用循环来实现斐波那契数列的第n个数: ```java public class Fibonacci { public static int fibonacci(int n) { if (n ) { return 0; } else if (n == 1) { return 1; } ...

    斐波那契随机序列代码.zip

    在压缩包中的"斐波那契(Fibonacci)序列"可能包含以下几类代码: 1. **基础实现**:通常会包含一个简单的递归或循环实现,例如Python中的函数: ```python def fibonacci(n): if n return n else: return ...

    数据库 K阶斐波那契数列 源代码

    这类源代码通常会包含循环、递归或者其他数值计算方法,比如动态规划,以高效地生成高阶斐波那契数。 在数据库中,我们可以将斐波那契数列的计算结果存储起来,便于后续查询。例如,如果我们需要频繁地查询某个阶数...

    斐波那契数列数据结构

    这些实现方式各有优缺点,递归直观但效率低,循环和动态规划效率较高且易于理解,而矩阵快速幂则在处理大数时效率最优。在实际应用中,我们需要根据具体需求选择合适的算法。在编程时,应考虑时间和空间复杂度,以及...

    0.618法和fibonacci法matlab算法

    ### 0.618法和Fibonacci法在MATLAB中的实现 #### 一、0.618法 0.618法是一种在一定区间内寻找函数极小值点的有效方法,该方法利用黄金分割比例(即0...以上是0.618法和Fibonacci法在MATLAB中的实现细节及其代码解释。

    Fibonacci数多种算法

    这是一种效率较高的方法,通过两个变量分别保存前两个斐波那契数,不断更新这两个变量,直到计算出第n个斐波那契数。时间复杂度是O(n)。 6. **闭式公式**: 斐波那契数列有一个公式Fn = (1/sqrt(5)) * [((1+sqrt...

    Java 实例 - 斐波那契数列源代码-详细教程.zip

    这种方法效率较高,因为它避免了重复计算。下面是一个简单的Java代码示例: ```java public int fibonacci(int n) { if (n ) return n; int fib = 1; int prevFib = 1; for (int i = 2; i ; i++) { int temp ...

    vb.net(2005)源码 高精度斐波那契.rar

    为了提高效率,可以使用缓存技术存储已经计算过的斐波那契数,避免重复计算。此外,可以考虑使用多线程或者异步操作,特别是当计算大量项时,可以分块计算以利用多核处理器的优势。 6. **错误处理** 实际编程时,...

    feibonaqi.rar_VERILOG fibonacci_fpga斐波那契_mips 斐波那契_verilog斐波那契_斐

    在压缩包内的“3-1斐波那契”可能是一个文档或源代码文件,它详细描述了斐波那契数列的Verilog实现过程,或者提供了一个具体的实例。进一步学习这个文件,可以帮助我们理解如何在Verilog中构建FPGA和MIPS处理器上的...

    C语言计算斐波那契数列(Fibonacci sequence), vc 6++可运行源码

    为了提高效率,我们可以采用动态规划或者循环的方式来计算斐波那契数列。下面是一个使用循环的示例: ```c #include void fibonacci(int n) { int a = 1, b = 1, c; if (n ) printf("请输入一个正整数\n"); ...

    NDK例子之 斐波那契算法

    NDK(Native Development Kit)是Android平台提供的一种工具集,允许开发者使用C、C++等原生代码编写应用的一部分,以实现高性能计算或者利用硬件特性。在本示例中,我们将探讨如何使用NDK实现斐波那契算法,这是一...

    MATLAB用斐波那契求函数极值代码.docx

    这段MATLAB代码实现了一种基于斐波那契数列的黄金分割法(Fibonacci search)来寻找一维函数的局部最小值。这种方法利用斐波那契数列的特性,逐步缩小区间并逼近函数的极小值点。以下是对代码的详细解释: 1. 函数...

    斐波那契C程序 递归算法

    递归方法虽然直观,但效率并不高。因为它会重复计算许多相同的子问题,时间复杂度为O(2^n),这在n较大时会导致大量的函数调用和计算资源的浪费。因此,对于大数值,通常推荐使用迭代(循环)方法,其时间复杂度为O(n...

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

    综上所述,"斐波那契数列(前100项).rar"这个压缩包可能是为学习者提供一个参考,用于验证自己的代码是否正确计算出了前100项斐波那契数。通过这个例子,我们可以深入理解递归和非递归算法,以及如何在C语言中实现...

    Fibonacci Heap and Dijktra

    斐波那契堆(Fibonacci Heap)是一种高级的数据结构,常用于图论算法中,如迪杰斯特拉算法(Dijkstra's Algorithm)来优化最短路径查找的效率。迪杰斯特拉算法本身是用于寻找带权有向图中源节点到其他所有节点的最短...

    用Python实现斐波那契(Fibonacci)函数

    **说明**: 这种实现方式基于矩阵乘法来计算斐波那契数,这种方法的效率非常高,尤其是在计算较大的斐波那契数时。但是,实现起来相对复杂。 #### 结论 以上介绍了八种不同的方式来实现斐波那契数列的计算。每种...

    fibonacci

    在"fibonacci"这个压缩包文件中,很可能包含了一个或多个这样的源代码文件,它们可能展示了不同的实现方式,或者包含了对斐波那契序列的进一步研究和扩展,比如计算斐波那契数列的模p同余类,或者寻找斐波那契数列在...

    斐波那契数列求和_whyadm_斐波那契求和c_数列求和_poorbv2_

    在压缩包"斐波那契数列求和"中,可能包含了以上提到的几种算法的实现代码,通过阅读和分析这些代码,可以进一步学习和实践这些概念和技术。标签"whyadm"、"斐波那契求和c"、"数列求和"和"poorbv2"可能是作者或项目...

Global site tag (gtag.js) - Google Analytics