斐波那契数列

[转]斐波那契数列(递归和循环)



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

	}