Fibonacci.java
/**
* 斐波那契数列求解
**/
class Fibonacci{
public static void main(String[] args){
for(int i = 1; i < 30; i++){
System.out.println("fibonacci(" + i + ") = " + fibonacci(i));
System.out.println("fibonacci_01(" + i + ") = " + fibonacci_01(i));
}
}
//迭代求解
public static int fibonacci(int n){
if(n < 1){
return -1;
}
if(n <= 2){
return 1;
}
int res = 0;
int first = 1;
int second = 1;
for(int i = 3; i <= n; i++){
res = first + second;
first = second;
second = res;
}
return res;
}
//递归求解
public static int fibonacci_01(int n){
if(n <= 2){
return 1;
}
return fibonacci_01(n-1)+fibonacci_01(n-2);
}
}