int fib(int n){
if(n==1 || n==2) return 1;
return fib(n-1) + fib(n-2);
}
- fib(5) 的返回值是?答案:5解析:斐波那契数列第 1~5 项为 1,1,2,3,5,故返回 5。
- 该算法的时间复杂度约为?答案:O(2^n)(指数级)解析:递归树呈指数增长,约为 O(2^n)。
- 当 n 很大(如 40)时,该写法主要问题是什么?答案:存在大量重复子问题,效率极低解析:fib(n-1) 与 fib(n-2) 重复计算,应改用递推或记忆化。