2014-05-11 05:21
原题:
Complexity of a function: int func_fibonacci ( int n) { if (n < 2) { return n; } else { return ( func_fibonacci(n-1) + func_fibonacci(n-2)); } }
题目:求上面函数的复杂度。
解法:时间复杂度就是斐波那契数,空间也是。
代码:
1 // http://www.careercup.com/question?id=5173689888800768 2 /* 3 T(0) = 1; 4 T(1) = 1; 5 T(n) = T(n - 1) + T(n - 2); 6 Thus T(n) is exactly nth Fibonacci number. 7 T(n) = (((1 + sqrt(5)) / 2) ^ n - ((1 - sqrt(5)) / 2) ^ n) / sqrt(5); 8 */ 9 int fibonacci (int n) 10 { 11 if (n < 2) { 12 return n; 13 } else { 14 return fibonacci(n - 1) + fibonacci(n - 2); 15 } 16 } 17 18 int main() 19 { 20 return 0; 21 }