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

GESP 2025年9月 C++八级 单选题 第12题

C++八级单选题2025年9月第12题

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

下面 count_triple 函数(枚举本原勾股数)的时间复杂度为:
int gcd(int m, int n) { if (m == 0) return n; return gcd(n % m, m); }
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;
}

正确答案:D

题目解析

外层 v 到 O(√n)、内层 u 到 O(√n)、每次 gcd 为 O(l………

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

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

进入 GESPPASS 开始练习