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