斐波那契数列 : 0、1、1、2、3、5、8、13、21、34......即 前两位相加之和,使用迭代算法和递归算法都可以实现斐波那契数列,输出数列中的第N项
斐波那契数列又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”
递归算法:
递归在计算时存在着大量的重复计算,所以在N值很大时,可能会造成内存的溢出,以及计算时间较长的情况出现
/**
* 递归方法实现
* f(n) = f(n - 1) + f(n - 2)
* 最高支持 n = 92 ,否则超出 Long.MAX_VALUE
* @param num n
* @return f(n)
*/
public static long fibRec(int num) {
if(num < 1)
return 0;
if(num < 3)
return 1;
return fibRec(num - 1) + fibRec(num - 2);
}
使用递归算法,当N值 超过40 时,运行耗时差异已经比较大了