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

斐波那契数列实现

    博客分类:
  • java
阅读更多

使用递归和非递归方式实现fibonacci数列,从输出结果分析:递归的执行效率低。

package com.sg.fibonacci;


public class FibonacciMain {

    public static void main(String[] args) {
        int num = 40;
        long begin = 0l;
        long end = 0l;
        
        begin= System.currentTimeMillis();
        System.out.print("Number "+num+" fibonacci value -> " +finnonacciTraversal(num));
        end = System.currentTimeMillis();
        System.out.println(" spend time: " + (end - begin));
        
        begin = System.currentTimeMillis();
        System.out.print("Number "+num+" fibonacci value -> " +fibonacciRecursive(num));
        end = System.currentTimeMillis();
        System.out.println(" spend time: " + (end - begin));
    }

    /**
     * 使用递归实现fibonacci数列
     * @param count 获取第count结果
     * @return
     */
    public static int fibonacciRecursive(int count){
        if(count == 1 || count == 2) {
            return 1;
        }else {
            int temp = fibonacciRecursive(count-1)+fibonacciRecursive(count-2);
            
            return temp;
        }
    }
    
    /**
     * 使用遍历的方式生成fibonacci数列
     * @param 获取第count结果
     * @return
     */
    public static int finnonacciTraversal(int count) {
        int f2 = 1;
        int f1 = 1;
        
        int temp = 0;
        for(int i=2;i<count;i++) {
            temp = f2;
            f2 = f1 + f2;
            f1 = temp;
        }
        
        return f2;
    }
}

 

Number 40 fibonacci value -> 102334155 spend time: 1
Number 40 fibonacci value -> 102334155 spend time: 811
 
分享到:
评论

相关推荐

    斐波那契数列实现C++

    斐波那契数列实现的C++代码;代码易懂易扩展。

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

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

    java实现Fibonacci数列

    根据给定文件的信息,我们可以详细地探讨如何使用Java来实现Fibonacci数列,并通过具体的代码示例来深入了解这一主题。 ### Java实现Fibonacci数列 #### 1. Fibonacci数列简介 Fibonacci数列是一系列数字,其中每...

    Python实现斐波那契数列

    斐波那契数列大家都很熟悉吧,咱们在高中学数学的时候,老师会讲这个定律以及算法,其实数据结构和数学息息相关,数学思维好的往往逻辑思维就比较好,今天小猿圈带大家学习一下python的斐波那契数列的实现。...

    非递归实现fibonacci数列

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

    斐波那契数列c++.pdf

    #### C++中的斐波那契数列实现 给定的部分内容展示了一个使用C++编写的简单程序,用于生成斐波那契数列: ```cpp #include #include // 定义斐波那契数列生成函数 std::vector&lt;int&gt; generateFibonacci(int n) {...

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

    递归方法是实现斐波那契数列的一种常见方式。在编程中,递归是指函数调用自身来解决问题的方法。在这个场景下,我们可以编写一个函数,它会根据斐波那契数列的定义来计算第n项的值。 Python中递归实现斐波那契数列...

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

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

    Fibonacci_VERILOGfibonacci_实现斐波拉切数列_

    在计算机科学中,特别是硬件描述语言(HDL)如Verilog中,斐波那契数列的实现是一个常见的练习,用于学习和展示并行和串行计算的概念。 Verilog是一种广泛使用的硬件描述语言,它允许工程师用类似于编程语言的方式...

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

    在Java编程中,实现斐波那契数列有多种方法,包括递归、循环和动态规划等。递归方法虽然直观,但效率较低,因为它会进行大量的重复计算。循环方法和动态规划则通过存储中间结果避免了重复计算,提高了效率。 以下是...

    python 实现斐波那契数列

    # 题目:斐波那契数列。 # 程序分析:斐波那契数列(Fibonacci sequence),从1,1开始,后面每一项等于前面两项之和。图方便就递归实现,图性能就用循环。

    MIPS汇编实验:斐波那契数列

    在这个"MIPS汇编实验:斐波那契数列"中,我们主要关注的是如何使用C语言和MIPS汇编来实现斐波那契数列的计算,并进行溢出和输入检测。斐波那契数列是由两个前一个数相加得到的数列,通常以0和1开始。 首先,我们看...

    利用Matlab程序计算斐波那契数列的前一百项

    在这个MATLAB程序中,我们首先定义了斐波那契数列的前两项`fibonacci = [1, 2]`,然后通过`for`循环从第三项开始计算,直到第一百项。在每次循环中,我们使用`fibonacci(k)`存储当前项,它是前两项`fibonacci(k-1)`...

    mips汇编语言实现斐波那契数列的排列

    MIPS汇编语言实现斐波那契数列的排列 本资源使用MIPS汇编语言在Mars环境下实现斐波那契数列的排列,并输出前n项的下标、十进制数值和十六进制数值。 知识点总结: 1. MIPS汇编语言基础知识:MIPS汇编语言是一种...

    Fibonacci(斐波那契)数列的JAVA解法

    输出Fibonacci数列是一种使用循环来输出斐波那契数列的方法。该方法的思想是使用循环来输出斐波那契数列的每个数字。下面是一个输出Fibonacci数列的JAVA代码: public class Fib{ public static void main(String ...

    java中斐波那契数列的简单实现方法.docx

    Java中斐波那契数列的简单实现方法 Java中斐波那契数列的简单实现方法是指使用Java语言来实现斐波那契数列的生成。斐波那契数列是指一个数列,其中每一项的值是前两项的和。这个数列有很多实际应用,例如解决兔子生...

    C语言解答经典的数学问题兔子繁衍问题即斐波那契数列问题

    通过使用迭代或者递归方法来实现斐波那契数列的计算,不仅可以加深我们对算法和程序控制流程的理解,而且还能直观地展示如何利用编程语言来解决现实世界中遇到的复杂问题。 在编程教育中,这样的练习十分常见,也是...

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

    在编程中,特别是C++中,有多种方法可以实现计算斐波那契数列的第n项。非递归的函数调用方式通常比递归更有效率,因为它避免了重复计算和堆栈调用的开销。以下是一种使用循环的非递归方法: ```cpp #include using...

Global site tag (gtag.js) - Google Analytics