CodeGym /Java 博客 /随机的 /Java 中的斐波那契数列
John Squirrels
第 41 级
San Francisco

Java 中的斐波那契数列

已在 随机的 群组中发布
在查看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