2020-04-10斐波那契数列


package hxy.bytecode.algorithm.fibonacci;


public class Fibonacci {
//  斐波那契有四种实现方法。递归,迭代,数组,队列

    // 百度斐波那契是从1开始的
    Fibonacci(int n) {
        // 迭代最高效,时间复杂度O(n),空间复杂度O(1)
        if (n <= 0) {
            System.out.println("请输入非负数");
            return;
        }
        int a1 = 1;
        int a2 = 1;
        int a3 = 0;
        if (n == 0 && n == 1) {
            System.out.println(1);
        } else {
            // 迭代是最高效的,时间复杂度是n与空间复杂度是1
            System.out.print(1 + "\t" + 1 + "\t");
            for (int i = 1; i < n; i++) {
                a3 = a1 + a2;
                System.out.print(a3 + "\t");
                a1 = a2;
                a2 = a3;
            }
//          System.out.println(a3);
        }
    }

    public static void main(String[] args) {
        // 爬楼梯问题也是斐波那契
        //从0开始计数。
        new Fibonacci(8);
    }

}


运行结果:

fibonacci

可以看看爬楼梯问题,一个斐波那契的实际场景。

推荐阅读更多精彩内容