原文: https://www.programiz.com/java-programming/examples/fibonacci-series

在该程序中,您将学习使用forwhile循环在 Java 中显示斐波那契数列。 您将学习如何显示序列,直到显示一个特定的术语或数字。

斐波那契数列是一个系列,其中下一项是前两个项的总和。 斐波那契数列的前两个项是 0,然后是 1。

  1. The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...

示例 1:使用for循环显示斐波那契数列

  1. public class Fibonacci {
  2. public static void main(String[] args) {
  3. int n = 10, t1 = 0, t2 = 1;
  4. System.out.print("First " + n + " terms: ");
  5. for (int i = 1; i <= n; ++i)
  6. {
  7. System.out.print(t1 + " + ");
  8. int sum = t1 + t2;
  9. t1 = t2;
  10. t2 = sum;
  11. }
  12. }
  13. }

运行该程序时,输出为:

  1. 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 +

在上面的程序中,第一项(t1)和第二项(t2)分别被初始化为斐波那契数列 0 和 1 的前两个项。

然后,for循环迭代到n(项数),显示存储在变量t1中的前两项的和。


您还可以使用 Java 中的while循环生成斐波那契数列。

示例 2:使用while循环显示斐波那契数列

  1. public class Fibonacci {
  2. public static void main(String[] args) {
  3. int i = 1, n = 10, t1 = 0, t2 = 1;
  4. System.out.print("First " + n + " terms: ");
  5. while (i <= n)
  6. {
  7. System.out.print(t1 + " + ");
  8. int sum = t1 + t2;
  9. t1 = t2;
  10. t2 = sum;
  11. i++;
  12. }
  13. }
  14. }

输出与上述程序相同。

在上面的程序中,与for循环不同,我们必须在循环体内增加i的值。

尽管两个程序在技术上都是正确的,但在这种情况下最好使用for循环。 这是因为迭代次数(从 1 到n)是已知的。


示例 3:显示最多给定数字(而不是项)的斐波那契数列

  1. public class Fibonacci {
  2. public static void main(String[] args) {
  3. int n = 100, t1 = 0, t2 = 1;
  4. System.out.print("Upto " + n + ": ");
  5. while (t1 <= n)
  6. {
  7. System.out.print(t1 + " + ");
  8. int sum = t1 + t2;
  9. t1 = t2;
  10. t2 = sum;
  11. }
  12. }
  13. }

运行该程序时,输出为:

Upto 100: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 +

该程序将序列显示到给定数字(100),而不是显示序列直至特定数字。

为此,我们只需要比较最后两个数字(t1)与n的和即可。

如果t1小于或等于n,则打印t1。 否则,我们完成了所有条款的显示。