斐波那契的递归与非递归

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YL970302/article/details/85852361

一、非递归

int Fibonacci(unsigned int n)
{
	int a = 1, b = 1, c = 1;
	for(int i = 3; i <= n; i++)
	{
		c = a + b;
		a = b;
		b = c;
	}
	return c;
}

二、递归

int Fibonacci(size_t n)    
{
	if(n == 1 || n == 2)
	{
		return 1;
	}
	 return Fibonacci1(n-1) + Fibonacci1(n-2);
}

三、递归调用的重复调用,其实就是将一中的非递归改成了递归实现

int Fibonacci(int n, int a=1 , int b=1)
{
	if(n <= 2)
	{
		return a;
	}
	else
		return Fibonacci(n - 1, a+b, a);
}

猜你喜欢

转载自blog.csdn.net/YL970302/article/details/85852361