1 条题解

  • 0
    @ 2025-8-24 21:18:03

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

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

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

    以下是正文


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

    本题考察循环嵌套。

    外面大矩形的边长为 aa,而中间挖掉的正方形的边长为 bb,可以得知:在第 ab2+1\dfrac{a-b}{2}+1 行列到第 a+b2\dfrac{a+b}{2} 行列是需要被挖空的。

    以样例的 a=6,b=2a=6,b=2 为例,第 622+1=3\dfrac{6-2}{2}+1=3 行列到第 6+22=4\dfrac{6+2}{2}=4 行列是空的。

    因此我们可以计算得到挖空区域的起始和终止位置。

    int st = (a - b) / 2 + 1; // 计算挖空区域的起始位置
    int ed = (a + b) / 2;
    

    接着设计一个二重循环,外层 ii 循环行数,内层 jj 循环列数,判断当前位置是否是需要被挖空的即可完成本题。

    参考代码(部分):

    for (int i = 1; i <= a; i++) {
        for (int j = 1; j <= a; j++) {
            if (i >= st && i <= ed && j >= st && j <= ed)
                cout << ' ';
            else
                cout << '*';
        }
        cout << endl; // 每行结束后换行
    }
    
    • 1

    [四川青少年 C++ 算法设计大赛 2024] 4-5 年级组第 6 题

    信息

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