1 条题解

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

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 洛谷网校
    欢迎大家报名洛谷网校的课程,期待和大家一起进步!https://class.luogu.com.cn

    搬运于2025-08-24 21:15:34,当前版本为作者最后更新于2024-02-23 15:58:56,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


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

    思路分析

    根据题意,当给定整数为 nn 时,输出为 n×nn \times n 的矩阵,所以我们可以考虑使用双重循环来解决,并根据行号 ii 和列号 jj(这里行号和列号都从 11 开始)之间的关系来决定在每个位置填充 +- 符号。

    通过观察样例我们发现,满足以下两个条件之一,则在当前位置输出 + 符号;否则输出 - 符号。

    1. i == j,即处于主对角线上。
    2. i + j == n + 1,即处于副对角线(从右上到左下)的位置。

    其次,我们需要注意每一行符号输出结束后,添加一个换行符(endl),确保下一行从新行开始。

    核心代码

    外层循环变量 i 代表行号,从 1 循环到 n。内层循环变量 j 代表列号,从 1 循环到 n。
    判断是否在对角线上,如果是则输出 + 符号;否则输出 - 符号:

    //判断是否在对角线上
    if (i == j || i + j == n + 1)
    {
    	cout << '+';
    }
    else
    {
    	cout << '-';
    }
    
    • 1

    信息

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