1 public class Test { 2 3 // 递归实现斐波那契数列 4 public int f(int n) { 5 if (n == 0 || n == 1) { 6 return 1; 7 } else if (n > 1) { 8 return f(n - 1) + f(n - 2); 9 } else { 10 return 0; 11 } 12 } 13 14 public void testF(int n) { 15 for (int i = 0; i < n; i++) { 16 System.out.print("f[" + i + "]=" + f(i) + " "); 17 } 18 } 19 20 // 非递归实现斐波那契数列 21 public void printF(int n) { 22 int sum = 0, sum1 = 0, sum2 = 0; 23 for (int i = 0; i < n; i++) { 24 if (i == 0 || i == 1) { 25 sum = 1; 26 System.out.print("f[" + i + "]=" + sum + " "); 27 sum1 = sum; 28 sum2 = sum; 29 } else { 30 sum = sum1 + sum2; 31 System.out.print("f[" + i + "]=" + sum + " "); 32 sum1 = sum2; 33 sum2 = sum; 34 } 35 } 36 } 37 38 public static void main(String[] args) { 39 new Test().testF(10); 40 new Test().printF(10); 41 } 42 43 }