斐波那契数列特点:每一项都等于其前两项的和;
0,1,1,2,3,5,8,13,21,34,55,89,144
//算法1
public static long feibonaqie(long n){
if(n<=1) return n;
return feibonaqie(n-1)+feibonaqie(n-2);
}
//算法2
public static long feibonaqie2(long n){
if(n<=1) return n;
int before1=0;
int before2=1;
for(int i=0;i<n-1;i++){
System.out.println("==================["+i+"]===================");
System.out.println("before1="+before1);
System.out.println("before2="+before2);
int sum=before1+before2;
System.out.println("sum="+sum);
before1=before2;
before2=sum;
}
return before2;
}
代码说明:
(1)算法1 使用的是自我迭代的方式, 算法2 使用的是普通的for循环的方式;
(2)算法1的代码量较少易于理解;算法2的代码量多,需要认真读循环代码;
(3)经测算 算法1的效率远低于 算法2