public static int fib(int n) { if(n==0) return 0; else if (n==1|n==2) return 1; else return fib(n-1)+fib(n-2); }
迭代
概念:
利用变量的原值推算出变量的一个新值,迭代就是A不停的调用B.
实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// 迭代实现斐波那契数列 public static int iteration(int n) { if (n == 1 || n == 2) { return 1; } else { int f1 = 1; int f2 = 1; int f3 = 0; for (int i = 2; i < n; i++) { f3 = f1 + f2; // 利用原值推算出新值 f1 = f2; f2 = f3; } return f3; } }