GESP C++ 真题 · 逐题精解
首页C++七级真题 › 2024年9月 › 第14题

GESP 2024年9月 C++七级 单选题 第14题

C++七级单选题2024年9月第14题

所属知识点:复杂度分析(递归/各类算法) 难度要求:— 考频:—

下面 fib 函数的时间复杂度为:
int fib_rcd[MAX_N];
int fib(int n) {
  if (n <= 1) return 1;
  if (fib_rcd[n] > 0) return fib_rcd[n];
  return fib(n-1) + fib(n-2);   // 注意:未写回 fib_rcd[n]
}

正确答案:B

题目解析
代码只「读」fib_rcd 却从不「写」,记忆化形同虚设,实为朴素递归 fib(n)=fib(n-1)+fib(n-2),调用次数按斐波那契数 ~φⁿ 增长(φ≈1.618),故 O(φⁿ),选 B。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习