1 条题解

  • 0
    @ 2025-8-24 21:14:29

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Maxmilite
    **

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

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

    以下是正文


    [语言月赛202301] Hello, 2023 题解

    Source & Knowledge

    2023 年 1 月语言月赛,由洛谷网校入门计划/基础计划提供。

    文字题解

    题目大意

    给定一个整数 xx,输出 xmod2023x \bmod 2023 非负整数的值。

    解析

    注意到题目中提示,如果使用 C/C++ 语言中的取模运算符(%\texttt{\%})对负数取模,将会得到一个负数作为结果。在这个负数结果上加上模数,得到的才是正确的取模结果。

    因此我们可以使用 if 语句判断给定的 xx 是否为负数,如果是则在取模后的负数结果上加上模数。

    if (x < 0)
        printf("%d\n", ((x % 2023) + 2023));
    else
        printf("%d\n", x % 2023);
    

    除此之外,注意到如果「在取模后的结果上加上模数」后再次「取模一次」,无论 xx 是否为负数,最终都可以得到正确结果。因此这里我们也可以直接这样处理。

    printf("%d\n", ((x % 2023) + 2023) % 2023);
    

    视频题解

    完整代码请在视频中查看。

    • 1

    信息

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