四种方法:
- 递归法 时间复杂度:O(2的n次幂)
- 递推法 时间复杂度:O(n)
- 矩阵分治法 时间复杂度:O(log(n))
- 公式法 时间复杂度:O(1)
/**
* 斐波那契数列
*
*/
package algorithms;
/**
* @author
* @time 2017年5月9日 下午5:45:45
*/
public class Fibonacci {
//递归
public static long F(int n){
if(n==0) return 0;
if(n==1) return 1;
return F(n-1)+F(n-2);
}
//递推
public static long fib(int n){
int a = 0;
int b = 1;
int c = 0;//临时变量
if(n==0) return 0;
if(n==1) return 1;
for(int i = 2;i <= n;i ++){
c = a + b;
a = b;
b = c;
}
return b;
}
public static void main(String[] args) {
for(int i = 0; i < 100; i++){
System.out.println(i+" "+fib(i));
}
}
}