斐波那契数列是数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1] )以兔子繁殖为例子而引入,也称为“兔子数列”。
指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
由于递归在计算过程中非常慢,所以本文提供了裴波那契数列的非递归实现。并且提供时间参数,用以对比两种方式的性能。
递归的思路是套用公式:F(n) = F(n-1) + F(n-2)
非递归的方式:每次保存上一次计算的结果,当计算新的一天时,只需要把保存的结果相加即可,而不用递归了。
public static void main(String[] args) {
long currentTime1 = System.currentTimeMillis();
System.out.println(fibonacciRecursion(40));
long endTime1 = System.currentTimeMillis()-currentTime1;
System.out.println("递归方式计算所需时间:"+endTime1);
long currentTime2 = System.currentTimeMillis();
System.out.println(fibonacciNotRecursion(40));
long endTime2 = Sy