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

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

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

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

下面 count_triple 函数的时间复杂度为:
int count_triple(int n) {
  int cnt=0;
  for (int a=1;a<=n;a++)
    for (int b=a;a+b<=n;b++) {
      int c = sqrt(a*a + b*b);
      if (a+b+c > n) break;
      if (a*a + b*b == c*c) cnt++;
    }
  return cnt;
}

正确答案:B

题目解析
外两层循环 a、b 满足 a+b≤n 共 O(n²) 对,内部直接由 c=sqrt(a²+b²) 算出(O(1),无第三重循环),故 O(n²),选 B。

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

进入 GESPPASS 开始练习