在该程序中,您将学习在Java中使用for和while循环显示斐波那契数列。您将学习如何显示最多包含特定术语或数字的系列。
斐波那契数列是一个系列,其中下一项是前两个项的总和。斐波那契数列的前两个项是0,然后是1。
斐波那契数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
public class Fibonacci { public static void main(String[] args) { int n = 10, t1 = 0, t2 = 1; System.out.print("First " + n + " terms: "); for (int i = 1; i <= n; ++i) { System.out.print(t1 + " + "); int sum = t1 + t2; t1 = t2; t2 = sum; } } }
运行该程序时,输出为:
0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 +
在上面的程序中,第一项(t1)和第二项(t2)分别初始化为斐波那契数列0和1的前两项。
然后,for循环迭代到n(项数),显示存储在变量t1中的前两项的和。
您还可以使用Java中的while循环生成斐波那契数列。
public class Fibonacci { public static void main(String[] args) { int i = 1, n = 10, t1 = 0, t2 = 1; System.out.print("First " + n + " terms: "); while (i <= n) { System.out.print(t1 + " + "); int sum = t1 + t2; t1 = t2; t2 = sum; i++; } } }
输出与上述程序相同。
在上面的程序中,与for循环不同,我们必须增加循环体内i的值。
尽管两个程序在技术上都是正确的,但在这种情况下最好使用for循环。这是因为迭代次数(从1到n)是已知的。
public class Fibonacci { public static void main(String[] args) { int n = 100, t1 = 0, t2 = 1; System.out.print("Upto " + n + ": "); while (t1 <= n) { System.out.print(t1 + " + "); int sum = t1 + t2; t1 = t2; t2 = sum; } } }
运行该程序时,输出为:
Upto 100: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 +
该程序将序列显示到给定数字(100),而不是显示序列直至特定数字。
对于这个,我们只需要比较最后两个数(t1)和n的和。
如果t1小于或等于n,打印t1。