1 条题解

  • 0
    @ 2025-8-24 21:16:12

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:16:11,当前版本为作者最后更新于2025-03-18 12:51:59,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    欢迎报名洛谷网校,期待和大家一起进步!

    本题考察数组、循环枚举法。

    询问有多少对下标组合 i,j\langle i,j\rangle,不难想到使用循环去枚举 i,ji,j,将 aia_iaja_j 相加,判断它们的和 sum 是否是完全平方数即可。

    判断是否是完全平方数的方式,是将 sum 开根号的结果放入一个 int 类型变量 sq 中,随后我们判断 sq * sq 是否等于 sum。例如,21.414\sqrt{2} \approx 1.414,转为 int 类型后是 11,而 1×1=121\times 1=1\neq 2,因此 2\sqrt{2} 不是一个整数,因此 22 不是一个完全平方数。

    参考代码:

    for (int i = 1; i <= n - 1; i++) {
        for (int j = i + 1; j <= n; j++) {
            int sum = a[i] + a[j];
            int sq = sqrt(sum);
            if (sq * sq == sum)
                ans++;
        }
    }
    
    • 1

    信息

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