斐波那契数列递归解法与循环解法

Posted ssopp24

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波那契数列递归解法与循环解法相关的知识,希望对你有一定的参考价值。

写一个函数,输入n,求斐波那契数列的第n项。


递归解法(效率很低):

int Fibonacci(int n)

	if ( 0 == n )
		return 0;
	else if ( 1 == n )
		return 1;
	else
		return Fibonacci(n-1) + Fibonacci(n-2);

循环解法(O(n)):

long long Fibonacci( unsigned n )

	int result[2] =  0, 1 ;

	if ( n < 2 )
		return result[n];

	long long fibNMinusOne = 0;
	long long fibNMinusTwo = 1;
	long long fibN = 0;

	for ( unsigned i = 2; i <= n; ++i )
		fibN = fibNMinusOne + fibNMinusTwo;

		fibNMinusOne = fibNMinusTwo;
		fibNMinusTwo = fibN;
	

	return fibN;


以上是关于斐波那契数列递归解法与循环解法的主要内容,如果未能解决你的问题,请参考以下文章

斐波那契数列的递归和非递归解法

面试官:斐波那契数列你能想出几种解法?(Java实现)

斐波那契数列--基本线性数学解法

剑指Offer之裴波那契数列

剑指Offer之裴波那契数列

斐波那契数列的几种解法