GESP C++ 真题 · 逐题精解
首页C++八级真题 › 2025年6月 › 第11题

GESP 2025年6月 C++八级 单选题 第11题

C++八级单选题2025年6月第11题

所属知识点:各类算法复杂度 难度要求:掌握 考频:中频

下面 count_triple 函数(枚举本原勾股数)的时间复杂度为:
int gcd(int a, int b) { if (a == 0) return b; return gcd(b % a, a); }
int count_triple(int n) {
    int cnt = 0;
    for (int v = 1; v * v * 4 <= n; v++)
        for (int u = v + 1; u * (u + v) * 2 <= n; u += 2)
            if (gcd(u, v) == 1) {
                int a = u*u - v*v, b = u*v*2, c = u*u + v*v;
                cnt += n / (a + b + c);
            }
    return cnt;
}

正确答案:C

题目解析

外层 v 到 √(n/4)=O(√n),内层 u 到约 O(√n),每次 g………

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

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

进入 GESPPASS 开始练习