CodeGym /Java Blog /Toto sisi /Java 中的斐波那契數列
John Squirrels
等級 41
San Francisco

Java 中的斐波那契數列

在 Toto sisi 群組發布
在查看Java中的斐波那契數列程式之前,我們先探討一下計算斐波那契數的數學方法是什麼。
“當我們將從 0 和 1 開始的序列的最後兩個連續數字相加時,就形成了斐波那契數列。”
換句話說,我們可以說,在斐波那契數列中,下一個數字等於最後兩個數字的總和。例如,0, 1, 1, 2, 3, 5, 8, 13, 21, 34…如果我們看上面的系列,數學計算看起來非常簡單。您只需取出最後兩個斐波那契數,將它們相加即可。結果是該系列中的最新數字。因此斐波那契數列中的下一個數字將是 21 + 34 = 55。但是,在 Java 中,有多種演算法可以做到這一點。讓我們看看我們可能的方法。

Java 中的斐波那契數列 [ 迭代法 ]

我們在 Java 中計算斐波那契數列程式的第一個也是最基本的方法是使用迭代方法。顧名思義,我們將使用循環迭代該系列。讓我們深入研究以下範例。

例子

public class IterativeFibonacci {

	public static void fibonacci(int MAX) {

		int firstNumber = 0;
		int secondNumber = 1;
		int fibonacci = '\0';

		System.out.print(firstNumber + " ");
		System.out.print(secondNumber + " ");

		for (int i = 2; i < MAX; i++) {

			fibonacci = firstNumber + secondNumber;
			System.out.print(fibonacci + " ");

			firstNumber = secondNumber;
			secondNumber = fibonacci;
		}
	}

	public static void main(String[] args) {

		System.out.println("Print Fibonacci Series Using Iterative Method");
		int MAX = 15;
		fibonacci(MAX);

	}
}

輸出

使用迭代方法列印斐波那契數列 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

解釋

在上面的範例中,我們使用一種名為「fibonacci」的方法來迭代列印斐波那契數列。變數MAX儲存要列印的斐波那契數列的總數。兩個變數firstNumbersecondNumber分別儲存前兩個斐波那契數。然後for迴圈從 i = 2 開始,因為第一個和第二個斐波那契數已經印出來。在每次迭代中,第一個和第二個數字都會更新以保持系列繼續進行。當循環接近最大限制時,即結束;我 < 最大值。

在 Java 中使用遞歸的斐波那契數列

既然您熟悉迭代方法,那麼讓我們在 Java 中使用遞歸來計算斐波那契數列。

例子

public class RecursiveFibonacci {

	// recursive method to return the fibonacci series
	public static int fibonacci(int MAX) {

		// base case
		if (MAX <= 1) {
			return MAX;
		}

		// recursive call
		else {
			// calculate the last two fibonacci numbers recursively
			return fibonacci(MAX - 2) + fibonacci(MAX - 1);
		}

	}

	public static void main(String[] args) {

		System.out.println("Print Fibonacci Series Using Recursion in Java");

		int MAX = 10;
		for (int i = 0; i < MAX; i++) {
		    System.out.print(fibonacci(i) + " ");
		}
	}
}

輸出

在 Java 中使用遞歸列印斐波那契數列 0 1 1 2 3 5 8 13 21 34

解釋

首先,我們定義 Java 中遞歸斐波那契數列的最大位數。然後我們將遞歸函數稱為「斐波那契」。如您所知,要在 Java 中使用遞歸,我們必須定義和處理兩種情況。第一個是基本情況,另一個是遞迴情況。在基本情況下,我們檢查 MAX 值是否小於或等於 1。如果為真,則傳回相同的數字(想像一下斐波那契數列的前兩位數字 0 和 1)。這就是基數的計算方式。在遞歸呼叫中,我們透過從 MAX 減去 1 和 2 來計算該系列的最後兩個數字。斐波那契方法將持續呼叫自身,直到到達最後兩位數字(0 和 1),將它們相加,然後繼續添加最後兩位數字,直到達到 MAX。

結論

希望現在您已經了解了 Java 中計算斐波那契數的兩種不同方法。您還可以使用動態規劃來挑戰自己。一如既往,我們希望您每天都練習並變得更好。不斷學習,不斷成長!
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION