非递归
int Fib(k)
{
int a = 0;
int b = 1;
int c = 0;
int i = 0;
if (k < 2)
{
return k;
}
for (i = 2; i <= k; i++)
{
c = a + b;
a = b;
b = c;
}
return c;
}
递归:
int Fib(k)
{
int i = 0;
if (k < 2)
{
return k;
}
else
{
return Fib(k - 1) + Fib(k - 2);
}
return;
}
尾递归
int Fib(int first, int second, int k)
{
if (k==1||k == 2)
{
return 1;
}
if (k == 3)
{
return first + second;
}
return Fib(second, first + second,k-1);
}