斐波那契数列是数学家列昂纳多·斐波那契(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)
非递归的方式是:每次保存上一次计算的结果,但计算新的结果时,只需要把保存的结果相加即可,而不用递归了。
//典型的斐波那契数列,递归实现实现方式:F(n) = F(n-1) + F(n-2) public static string Fibonacci(int n) { if (n==0) { return 0; } if (n==1) { return 1; } else { return Fibonacci(n-1) + Fibonacci(n-2); } } //非递归方法,思路:每次保存上一次结果: public static int Fibonacci(int n) { if (n == 0){ return 0; } if (n == 1){ return 1; } int temp1 = 1; int temp2 = 1' int end = 0; for(int i=2;i<=n;i++){ end = temp1 + temp2; temp2 = temp1; temp1 = end; } return end; }