Java 程序:显示斐波那契数列

要理解此示例,您应了解以下Java编程主题


显示斐波那契数列

斐波那契数列是一个数列,其中下一项是前两项之和。斐波那契数列的前两项是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,

在上面的程序中,firstTermsecondTerm 分别被初始化为01(斐波那契数列的前两项)。

在这里,我们使用for循环来

  • 打印数列的 firstTerm
  • 通过将 firstTermsecondTerm 相加来计算 nextTerm
  • secondTerm 的值赋给 firstTerm,并将 nextTerm 的值赋给 secondTerm

我们也可以使用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循环。这是因为迭代次数(从1n)是已知的。


示例 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)的数列。

为此,我们只需将 firstTermn 进行比较。如果 firstTerm 小于 n,则将其打印在数列中。否则,数列完成。


另请阅读

在我们结束之前,让我们用下面的挑战来检验你对 Java 程序显示斐波那契数列的知识!你能解决以下挑战吗?

挑战

编写一个函数来查找第 n 个斐波那契数。

  • 斐波那契数列是这样的一系列数字:一个数字是通过将它前面的两个数字相加得到的。
  • 从 **0** 和 **1** 开始,数列是:**0**、**1**、**1**、**2**、**3**、**5**、**8**、**13**,依此类推。
  • 返回第 n 个斐波那契数,其中 n 是一个正整数。
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战