在該程序中,您將學(xué)習(xí)在Java中使用for和while循環(huán)顯示斐波那契數(shù)列。您將學(xué)習(xí)如何顯示最多包含特定術(shù)語(yǔ)或數(shù)字的系列。
斐波那契數(shù)列是一個(gè)系列,其中下一項(xiàng)是前兩個(gè)項(xiàng)的總和。斐波那契數(shù)列的前兩個(gè)項(xiàng)是0,然后是1。
斐波那契數(shù)列: 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; } } }
運(yùn)行該程序時(shí),輸出為:
0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 +
在上面的程序中,第一項(xiàng)(t1)和第二項(xiàng)(t2)分別初始化為斐波那契數(shù)列0和1的前兩項(xiàng)。
然后,for循環(huán)迭代到n(項(xiàng)數(shù)),顯示存儲(chǔ)在變量t1中的前兩項(xiàng)的和。
您還可以使用Java中的while循環(huán)生成斐波那契數(shù)列。
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循環(huán)不同,我們必須增加循環(huán)體內(nèi)i的值。
盡管兩個(gè)程序在技術(shù)上都是正確的,但在這種情況下最好使用for循環(huán)。這是因?yàn)榈螖?shù)(從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; } } }
運(yùn)行該程序時(shí),輸出為:
Upto 100: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 +
該程序?qū)⑿蛄酗@示到給定數(shù)字(100),而不是顯示序列直至特定數(shù)字。
對(duì)于這個(gè),我們只需要比較最后兩個(gè)數(shù)(t1)和n的和。
如果t1小于或等于n,打印t1。