斐波那契数列是数学家列昂纳多·斐波那契(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;
}