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("斐波那契数列的前 " + 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,
在上述程序中,firstTerm
和 secondTerm
分别初始化为斐波那契数列的前两个数字 0 和 1。
在这里,我们使用 for
循环来:
- 打印数列的
firstTerm
- 通过加上
firstTerm
和secondTerm
来计算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
循环。这是因为迭代的次数(从 1 到 n
)是已知的。
示例 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)的数列。
为此,我们只需要将 firstTerm
与 n
进行比较。如果 firstTerm
小于 n
,就将其打印在数列中。否则,数列结束。