跳到主要内容

Java程序显示斐波那契序列

要理解这个示例,你应该具备以下 Java 编程 主题的知识:

展示斐波那契数列

斐波那契数列是一个每个数是前两个数之和的数列。斐波那契序列的前两个数字是 01

斐波那契数列: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("斐波那契数列的前 " + n + " 项:");

for (int i = 1; i <= n; ++i) {
System.out.print(firstTerm + ", ");

// 计算下一个数字
int nextTerm = firstTerm + secondTerm;
firstTerm = secondTerm;
secondTerm = nextTerm;
}
}
}

输出

斐波那契数列的前 10:
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("斐波那契数列的前 " + n + " 项:");

while (i <= n) {
System.out.print(firstTerm + ", ");

int nextTerm = firstTerm + secondTerm;
firstTerm = secondTerm;
secondTerm = nextTerm;

i++;
}
}
}

输出

斐波那契数列的前 10:
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("斐波那契数列直到 " + n + " 为止: ");

while (firstTerm <= n) {
System.out.print(firstTerm + ", ");

int nextTerm = firstTerm + secondTerm;
firstTerm = secondTerm;
secondTerm = nextTerm;

}
}
}

输出

斐波那契数列直到 100 为止:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,

在这个示例中,我们不是展示某个数字的斐波那契数列,而是展示直到给定数字(100)的数列。

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