public class FibArray {
//非递归实现
public static int fib(int N) {
if(N <= 1){
return N;
}
return memorize(N);
}
public static int memorize(int N){
int[] cache = new int[N + 1];
cache[1] = 1;
for(int i = 2; i <= N; i++){
cache[i] = cache[i - 1] + cache[i - 2];
}
return cache[N];
}
//递归实现
public static int fibWithRecursion(int N){
if(N <= 1){
return N;
}else {
return fibWithRecursion(N -1) + fibWithRecursion(N - 2);
}
}
public static void main(String[] args){
for(int i = 0; i < 10; i++){
System.out.print(fib(i) + " ");
}
System.out.println();
for(int i = 0; i < 10; i++){
System.out.print(fibWithRecursion(i) + " ");
}
}
}