写一个函数,输入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;
}
本文介绍两种求解斐波那契数列的方法:低效的递归解法及高效的循环解法,并提供完整的代码实现。
8万+

被折叠的 条评论
为什么被折叠?



