import java.util.ArrayList;
import java.util.List;
/**
* @author jiuluo
*/
public class FibonacciDemo {
public static void main(String[] args) {
Long a = System.currentTimeMillis();
int size = 40;
for(int i = 0;i <= size;i++){
fibonacci(i);
}
Long b = System.currentTimeMillis();
System.out.println(b - a);
for(int i = 0;i <= size;i++){
fibonacciImprove(i);
}
Long c = System.currentTimeMillis();
System.out.println(c - b);
}
private static int fibonacci(int i){
if(i == 0 || i==1){
return i;
}else {
return fibonacci(i - 1) + fibonacci( i -2 );
}
}
private static List<Integer> list = new ArrayList<>();
static int size = 2;
static {
list.add(0);
list.add(1);
}
private static int fibonacciImprove(int n){
int result = 0;
if(n >= size){
result = fibonacciImprove(n - 1) + fibonacciImprove( n -2 );
list.add(result);
size = size + 1;
return result;
}else {
return list.get(n);
}
}
}
斐波那契数列优化 java
最新推荐文章于 2023-04-02 23:32:59 发布