1. 概念:前一项与前一项的前一项之和等于当前项的斐波拉稀数(Sn=Sn-1 + Sn-2)
2. 方法一:递归方法,效率较低,程序简单易懂
/**
* 求第n个斐波拉稀数,递归的方法
* @param n
* @return
*/
public static long feibolaxDigui(int n){
//判断,如果n是2以下,则可以直接返回
if(n <= 1){
return n;
}
return feibolaxDigui(n-1) + feibolaxDigui(n-2);
}
3. 方法二:通过循环遍历,时间复杂度为O(N)
/**
* 循环实现,
* @param n
* @return
*/
public static long forFBLX(int n){
//判断前两项
if(n <= 1){
return n;
}
long s1 = 0; // n-2项
long s2 = 1; // n-1项
long s = 0; //第n项
for(int i = 2;i<= n;i++){
s = s1 + s2;
s1 = s2;
s2 = s;
}
return s;
}