Java 中的斐波那契系列:如何在 Java 中编写和显示斐波那契
已发表: 2020-07-29斐波那契数列得名于意大利数学家莱昂纳多·斐波那契。 早在 1202 年,他就通过他的书 Liber Abaci 在西欧介绍了这个系列。印度数学界早在公元前 200 年就已经看到了斐波那契魔法的方式,Pingala 的作品就证明了这一点。 这种数字表示在编码和计算领域也占有特殊的位置。 在本解释器结束时,您将了解如何使用 Java 编写斐波那契数列。
整数序列以 0 和 1 开头,后面的每个数字都是前面两个数字的和,例如 0、1、1、2、3、5 等。 在 JavaScript 中有两种主要的生成方式,即 (i) 使用迭代,即不使用递归,以及 (ii) 使用递归。 虽然迭代方法需要线性时间来完成任务,但您可以使用递归技术以指数方式获得解决方案。 现在,让我们一一深入研究这些方法的细节。
阅读: Python vs. Javascript Throwdown:你应该更喜欢哪一个?
目录
用 Java 编写斐波那契数列
方法一:不递归
- 循环
在这种情况下,您希望 Java 程序生成斐波那契数列的前 n 个数字。 下面详细介绍了“for”循环迭代的工作原理。
首先,您初始化系列的前两个数字。 然后,For 循环将两个直接前任相加并打印该值。 此过程将一直持续到前 n 个数字已显示。 由于程序在开始迭代之前已经发布了 0 和 1,因此 For 循环条件由 n-2 给出。
- While 循环
它遵循类似于 For 循环方法的逻辑,但需要程序员在其应用中更加小心。 “while”循环的控制流语句在布尔条件下重复执行代码。 只有当条件满足或为真时,循环体才会被执行。 此外,更新表达式增加循环变量。 相反,如果条件评估为假,我们将退出 while 循环。

阅读: Java 架构和组件解释
让我们观察下面给出的 Java 代码,以更好地理解 While 循环:
方法2:使用递归
当您使用递归在 Java 中编写斐波那契数列时,函数会直接或间接调用自身。 它是一种基本的 JavaScript 编程技术,该函数被称为递归函数。
递归算法可以帮助您轻松解决复杂问题。 假设您想使用递归打印斐波那契数列的前“n”个数字。 您将需要一个递归 Java 程序来生成所需的系列。 以下是这种实现的逐步解释:
- 用户会给出输入
- For 循环将应用于循环,直到每次迭代调用返回 n 位置处的斐波那契数的函数。 让它成为斐波那契数(int n)
- 然后该函数将递归调用自身并添加前两个斐波那契数
斐波那契数列的例子
斐波那契数列的一些现实实例包括花朵中的花瓣、松果、树枝、贝壳螺旋以及自然界中的许多其他表示形式。 这个数学序列的黄金比例规则是宇宙最基本特征所固有的,例如我们的 DNA 分子和星系的螺旋。

上面描述的迭代和递归方法是斐波那契数列的递归关系的实现。 它由下式给出:F(n) = F(n-1) + F(n-2)。 当我们将种子值放入这个关系中时,我们得到:F(0) = 0 和 F(1) = 1。对于给定的数字 n,你将如何找到斐波那契数列中的第 n 个数字? 让我们考虑不同输入的场景。
- 对于输入 n=2,输出将为 1
- 对于输入 n=9,结果将是 34
您可以在这些基础上编写一个返回 F(n) 的函数。 函数可以通过:int fib (int n) 给出。 当 n = 0 时,fib() 函数将返回 0。类似地,如果 n = 1,则 fib() 应返回 1。对于 n > 1,输出应为 F(n-1) + F (n-2)。
fib() 函数的测试用例
对于一个简短的序列,即。 [0, 1, 1, 2, 3, 5, 8,…,55] 和 fib(5),结果将是 5。因此,我们的目标是从 Fibonacci 序列数组中返回索引为 5 的元素. 让我们看看这将如何使用迭代方法展开。
- 函数fib(n){
让数组 = [0,1];
for (让 j = 2; j < n + 1; j ++) {
array.push(array[j-2] + array[j-1])
}
返回数组[n]
}
您可以注意到,在上面的代码片段中,我们将数组变量分配给 [0,1] 而不是创建一个空数组。 循环从 j = 2 开始迭代并不断添加数字,直到数组的长度为 n + 1。这样,我们返回 n 索引处的数字。 因此,fib (4) 的输出为 3,fib (5) 的输出为 5,依此类推。
如果您在面试中被要求使用递归解决相同的问题,您可以使用以下基本案例。
- 函数fib(n){
如果 (n > 2){
返回 n
}
返回 fib(n-1) + fib (n-2)
}

假设您使用参数 5 调用 fib()。在这里,fib 函数将继续创建树的更多分支,直到达到基本情况(n 的值小于 2),之后它将开始汇总返回每个分支的值。 仅当打印等于 5 的整数时,递归调用才会停止。
Java中斐波那契数列的优点
- 使用简单的 Javascript 程序,您可以执行斐波那契数列,轻松显示特定数字或术语的数列
- 递归在 Java 中提供了简洁而富有表现力的代码
- 迭代算法在生产中提供了出色的解决方案,因为它们是有界的,可以保持代码的健壮性。 相反,递归算法有时会导致堆栈溢出错误
- 斐波那契搜索在排序数组中工作并且比二分搜索执行得更好,主要是当访问速度取决于先前访问的位置时
- 熟悉斐波那契数列可以让学生在开发需要各种前端和后端功能的现代应用程序的同时开发逻辑
查看: Java 项目创意
加起来
在本文中,我们试图帮助您在 Java 中实现一个斐波那契数列,并了解不同方法背后的逻辑。 您可以使用递归或不使用递归(for 循环和 while 循环)来表示斐波那契数。 之后,我们刷新了这两种方法背后的核心概念,并讨论了它们的优势。
有了所有这些信息,您可以更新您的算法知识并编写更好的代码。 如果您对数组、二叉树、链表等数据结构也有很好的理解,那将是最好的。使用上面的文章作为您修订的起点并培养您的编程技能!
如果您有兴趣了解有关 Java、全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发 PG 文凭,该文凭专为在职专业人士设计,提供 500 多个小时的严格培训,9 个以上的项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。