1 条题解

  • 0
    @ 2025-8-24 21:07:48

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:07:47,当前版本为作者最后更新于2025-05-28 13:16:39,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


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

    本题考察循环结构、自定义函数。

    在本题中,我们可以把“算一条短信要发几条”做成一个函数。我们编写一个函数 seg(x) 表示,输入这次短信的字数 xx,返回它需要多少条短信。

    根据题意,每 7070 个字算一条短信,超过 7070 字就要分割成多条。例如:7979 个字要发 22 条,而 140140 个字也是发 22 条。我们可以编写这样的一个函数:

    int seg(int x) {
        return (x + 69) / 70;
    }
    

    在函数中,如果 xx 恰好是 7070 的倍数,那么 (x+69)÷70(x + 69)\div 70,返回的值和 x÷70x \div 70 恰好相同。否则会返回 x÷70+1x\div 70 + 1

    在主函数中,我们只需要使用循环读入短信字数,求出一共要发多少条短信,最后计算总资费即可。参考代码:

    int sum = 0; // 总条数
    for (int i = 0; i < n; ++i) {
        int x;
        cin >> x;
        sum += seg(x);
    }
    // 总资费:每条 0.1 元
    double cost = sum * 0.1;
    
    • 1

    信息

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