显示斐波那契数列
斐波那契数列是一个系列,其中下一项是前两项之和。斐波那契数列的前两项是 0 后跟 1。
斐波那契数列: 0、1、1、2、3、5、8、13、21、34
假设,我们的前两个术语是:
firstTerm = 0 secondTerm = 1
斐波那契数列中的下一项将计算为:
nextTerm = firstTerm + secondTerm; (0 + 1) firstTerm = secondTerm; (1) secondTerm = nextTerm; (1) nextTerm = firstTerm + secondTerm; (1 + 1) ....
现在让我们在我们的程序中应用这个逻辑。
示例: 使用 for 循环显示斐波那契数列
class Main { public static void main(String[] args) { int n = 10, firstTerm = 0, secondTerm = 1; System.out.println("Fibonacci Series till " + n + " terms:"); for (int i = 1; i <= n; ++i) { System.out.print(firstTerm + ", "); // compute the next term int nextTerm = firstTerm + secondTerm; firstTerm = secondTerm; secondTerm = nextTerm; } } }
输出
Fibonacci Series till 10 terms: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
在上面的程序中,
firstTerm 和
secondTerm 分别被初始化为 0 和 1(前两位数字斐波那契数列)。
这里,我们使用了
打印系列的firstTerm
通过添加 firstTerm 和 secondTerm 来计算
nextTerm
将 secondTerm 的值赋给 firstTerm,将 nextTerm 的值赋给 secondTerm
for
循环来
我们还可以使用
while
循环在 Java 中生成斐波那契数列。
示例 2: 使用 while 循环显示斐波那契数列
class Main { public static void main(String[] args) { int i = 1, n = 10, firstTerm = 0, secondTerm = 1; System.out.println("Fibonacci Series till " + n + " terms:"); while (i <= n) { System.out.print(firstTerm + ", "); int nextTerm = firstTerm + secondTerm; firstTerm = secondTerm; secondTerm = nextTerm; i++; } } }
输出
Fibonacci Series till 10 terms: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
这个程序的工作原理和之前的程序一样。
而且,虽然这两个程序在技术上都是正确的,但在这种情况下最好使用
for
循环。这是因为迭代次数(从 1 到
n)是已知的。
示例 3: 显示指定数字以内的斐波那契数列
class Fibonacci { public static void main(String[] args) { int n = 100, firstTerm = 0, secondTerm = 1; System.out.println("Fibonacci Series Upto " + n + ": "); while (firstTerm <= n) { System.out.print(firstTerm + ", "); int nextTerm = firstTerm + secondTerm; firstTerm = secondTerm; secondTerm = nextTerm; } } }
输出
Fibonacci Series Upto 100: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
在此示例中,我们不显示特定数字的斐波那契数列,而是显示指定数字(100) 的序列。
为此,我们只需将
firstTerm 与
n 进行比较。并且,如果
firstTerm 小于
n,则将其打印在系列中。否则,该系列已完成。