斐波那契数列

来源:互联网 发布:西门子plc编程入门教程 编辑:程序博客网 时间:2024/06/05 11:25

斐波那契数列默认前两项是0, 1,后面每一项数字都是其前面两项数字的和。
0, 1, 1, 2, 3, 5, 8…

关于斐波那契数列,一般情况下,我们首先想到的都是递归实现。

public static int Fibonacci(int n) {    if (n <= 1) {        return n;    } else {        return Fibonacci(n - 1) + Fibonacci(n - 2);    }}

但是由于递归实现时重复计算次数太多,当n很大时要耗时很久,时间复杂度随n呈指数形式增加。所以可行性不高。
第二种做法,我们直接使用循环累加,每一项都等于它前面两项的和。

public static int Fibonacci(int n) {    if (n <= 1)        return n;    int firstItem = 0;    int secondItem = 1;    int fib = 0;    for (int i = 2; i <= n; i++) {        fib = firstItem + secondItem;        firstItem = secondItem;        secondItem = fib;    }    return fib;}

时间复杂度为O(n).

0 0
原创粉丝点击