Java斐波那契數列範例

2019-10-16 22:20:47

在斐波那契數列中,下一個數位是前兩個數位的總和,例如:0,1,1,2,3,5,8,13,21,34,55等。斐波那契數列的前兩個數位是01,第三個數位是前兩個數位的和,也就是 0+1=1,所以這裡第三個數位的值是 1

在java中有兩種方式編寫斐波那契數列(fibonacci)程式:

  • 不使用遞迴實現斐波那契數列
  • 使用遞迴實現斐波那契數列

1. 不使用遞迴實現斐波那契數列

下面讓我們來看看在不使用遞迴實現斐波那契數列的java程式。

class FibonacciExample1 {
    public static void main(String args[]) {
        int n1 = 0, n2 = 1, n3, i, count = 10;
        System.out.print(n1 + " " + n2);// printing 0 and 1

        for (i = 2; i < count; ++i)// loop starts from 2 because 0 and 1 are
                                    // already printed
        {
            n3 = n1 + n2;
            System.out.print(" " + n3);
            n1 = n2;
            n2 = n3;
        }

    }
}

執行上面程式碼,得到如下結果 -

0 1 1 2 3 5 8 13 21 34

2. 使用遞迴實現斐波那契數列

下面看看使用遞迴實現斐波那契數列的java程式。

class FibonacciExample2 {
    static int n1 = 0, n2 = 1, n3 = 0;

    static void printFibonacci(int count) {
        if (count > 0) {
            n3 = n1 + n2;
            n1 = n2;
            n2 = n3;
            System.out.print(" " + n3);
            printFibonacci(count - 1);
        }
    }

    public static void main(String args[]) {
        int count = 10;
        System.out.print(n1 + " " + n2);// printing 0 and 1
        printFibonacci(count - 2);// n-2 because 2 numbers are already printed
    }
}

執行上面程式碼,得到如下結果 -

0 1 1 2 3 5 8 13 21 34