package org.vocano.java.tst.recursion;
public class Fibonacci {
public static int recursive(int n) {
if(n < 2) return 1;
return recursive(n-2) + recursive(n-1);
}
public static int directly(long n) {
if(n < 3) return 1;
int result = 0;
int a1 = 1, a2 = 1;
for (int i = 2; i <= n; i++) {
result = a2 + a1;
a1 = a2;
a2 = result;
}
return result;
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
System.out.println(recursive(40));
long end = System.currentTimeMillis();
System.out.println(end - start);
System.out.println(directly(40));
System.out.println(System.currentTimeMillis() - end);
}
} /* output:
165580141
1401
-1109825406
0
*///:~