显示斐波那契数列
斐波那契数列是一个数列,其中下一项是前两项之和。斐波那契数列的前两项是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(斐波那契数列的前两项)。
在这里,我们使用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("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,则将其打印在数列中。否则,数列完成。
另请阅读