斐波那契数列的递归与非递归的实现

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

0,1,1,2,3,5,8…这样的数列称作斐波那契数列
1、递归实现方式

//斐波那契数列递归实现
long long Fib1(long long n)
{
	if (n<=1)
		return n;
	else
		return Fib1(n - 1) + Fib1(n - 2);
}

时间复杂度为O(n^2)
递归方式实现

//斐波那契数列非递归实现
long long Fib2(long long n)
{
	unsigned long first = 0;
	unsigned  second = 1;
	unsigned ret = 0;
	if (n <= 1)
		return n;
	for (int i = 2; i < n; i++)
	{
		ret = first + second;
		first = second;
		second = ret;
	}
	return ret;
}

时间复杂度为O(n)

猜你喜欢

转载自blog.csdn.net/wyn126/article/details/82766975