1 条题解

  • 0
    @ 2025-11-30 16:24:25

    C++ :

    #include <iostream>
    #include<cmath>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
    
        int cnt = 0;
        for (int c = 1; c <= n; ++c) {
            int c2 = c * c;
            for (int a = 1; a <= c; ++a) {
                int a2 = a * a;
                // 由 a<=b<=c,可推出 b 的范围
                int b2 = c2 - a2;
                if (b2 < a2) break;   // 此时 b<a,不符合 a<=b
                int b = static_cast<int>(sqrt(b2) + 0.5); // 四舍五入取整
                if (a <= b && b <= c && a * a + b * b == c * c) {
                    ++cnt;
                }
            }
        }
        cout << cnt << endl;
        return 0;
    }
    
    • 1

    信息

    ID
    802
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者