版权声明:本文为博主原创文章,未经博主允许不得转载。 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)