1 条题解

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

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 一扶苏一
    休息结束。邮箱 yifusuyi@qq.com

    搬运于2025-08-24 21:15:10,当前版本为作者最后更新于2020-03-17 23:24:53,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    [语言月赛202307] 数字判断 题解

    Source & Knowledge

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

    本题考察分支结构和简单数学推导。

    文字题解

    题目大意

    给定三个整数 a,b,ca, b, c,请你判断它们是否满足如下所有条件:

    1. a+b+c100a + b + c \leq 100
    2. bb55 的倍数。
    3. cc77 的倍数。
    4. ab>bca - b > b - c

    如果上述条件均满足,请输出 Yes\texttt{Yes},否则输出 No\texttt{No}

    0a,b,c<2310 \leq a, b, c < 2^{31}

    解析

    读入

    定义三个变量 a,b,ca,b,c。注意到 a,b,c<231a,b,c < 2^{31},即可以使用 int 存储。但是接下来我们需要计算三个数字的和,这个和会超过 int 能存储的范围,所以选择使用 long long 来定义 a,b,ca,b,c

    long long a, b, c;
    cin >> a >> b >> c;
    

    判定

    可以用一个 bool 变量 ansans 来存储是否满足全部条件。初始时,ansans 为真。

    【条件 1】 求和即可。

    if (a + b + c > 100) ans = false;
    

    【条件 2】 可以用取余运算符来求 bb 除以五的余数。当余数为 00 时,说明 bb55 的倍数,反之不是。

    if (b % 5 != 0) ans = false;
    

    【条件 3】 同理。

    if (c % 7 != 0) ans = false;
    

    【条件 4】 做减法即可。

    if (a - b <= b - c) ans = false;
    

    输出

    如果 ansans 为真,说明四个条件均满足,输出 Yes\texttt{Yes},否则输出 No\texttt{No}

    if (ans) cout << "Yes\n";
    else cout << "No\n";
    

    视频题解

    • 1

    信息

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