Careercup - Microsoft面试题 - 5173689888800768

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 }

 

你可能感兴趣的:(Microsoft)