int fib(int n)
{
return (2 > n) ? n : fib(n - 1) + fib (n - 2);
}
时间复杂度O(2的n次方)
int fib(int n, int &prev)
{
if( n == 0)
{
prev = 1;
return 0;
}
else
{
int prevPrev;
prev = fib(n - 1,prevPrev);
return prevPrev + prev;
}
}
时间复杂度O(n)
空间复杂度O(n)
int fib(int n)
{
int f = 0, g = 1;
while (0 < n--){ g += f; f = g - f;}
return f;
}
时间复杂度O(n)
空间复杂度O(1)