1 条题解

  • 0
    @ 2025-8-24 21:15:27

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 残阳如血
    人事已尽,天命难违

    搬运于2025-08-24 21:15:26,当前版本为作者最后更新于2023-10-01 11:49:08,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    思路分析

    枚举 a,ba,b,那么我们定 cca2+b2\lfloor\sqrt{a^2+b^2}\rfloor

    接下来我们需要判断一下 cc 是否满足以下条件:

    • cnc\le n:判断 cc 是否在 nn 的范围内。
    • c2=a2+b2c^2=a^2+b^2:由于 cc 已经向下取整,所以这样判断即可确定 a2+b2\sqrt{a^2+b^2} 是否为整数。

    判断成功后累加即可,时间复杂度 O(n2)\mathcal O(n^2),可以通过。

    代码实现

    #include <iostream>
    #include <cmath>
    
    int main() {
    	int n, ans = 0; std::cin >> n;
    	for (int a = 1; a <= n; ++a)
    		for (int b = a; b <= n; ++b) {
    			int c = sqrt(a * a + b * b);
    			if (c > n || c * c != a * a + b * b) continue;
    			++ans;
    		}
    	std::cout << ans;
    	return 0;
    }
    
    • 1

    信息

    ID
    9139
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者