import java.util.Scanner; /* 斐波那契數列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 如果設F(n)為該數列的第n項(n∈N*),那么這句話可以寫成如下形式::F(n)=F(n-1)+F(n-2) 顯然這是一個線性遞推數列。 */ public class Fibonacci { // 使用遞歸方法 private static void recursion(int n) { int j = n; System.out.println(); System.out.println("斐波那契數列的前" + j + "項為:"); for (int i = 1; i <= j; i++) { System.out.print(getFibo(i) + "\t"); if (i % 5 == 0) System.out.println(); } } private static int getFibo(int i) { if (i == 1 || i == 2) return i - 1; else return getFibo(i - 1) + getFibo(i - 2); } // 使用三個變量 private static void ThreeVariable(int n) { int a = 0, b = 1, c = 1; int j = n; System.out.println(); System.out.println("斐波那契數列的前" + j + "項為:"); System.out.print(a + "\t" + b + "\t"); for (int i = 1; i <= j - 2; i++) { c = a + b; a = b; b = c; System.out.print(c + "\t"); if ((i + 2) % 5 == 0) System.out.println(); } } public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int n = in.nextInt(); // ThreeVariable(n);// 使用數組 recursion(n);// 使用遞歸 } in.close(); } }