gesp(二级)(16)洛谷:B4037:[GESP202409 二级] 小杨的 N 字矩阵
题目描述
小杨想要构造一个 m × m m \times m m×m 的 N N N 字矩阵( m m m 为奇数),这个矩阵的从左上角到右下角的对角线、第 1 1 1 列和第 m m m 列都是半角加号 +
,其余都是半角减号 -
。例如,一个 5 × 5 5 \times 5 5×5 的 N 字矩阵如下:
plain
+---+
++--+
+-+-+
+--++
+---+
请你帮小杨根据给定的 m m m 打印出对应的 N 字矩阵。
输入格式
输入只有一行包含一个正整数 m m m。
输出格式
输出对应的 N N N 字矩阵。
样例 #1
样例输入 #1
5
样例输出 #1
+---+
++--+
+-+-+
+--++
+---+
提示
数据规模与约定
对全部的测试数据,保证 3 ≤ m ≤ 49 3 \leq m \leq 49 3≤m≤49 且 m m m 是奇数。
AC代码(100分)
cpp
#include<bits/stdc++.h>
using namespace std;
/*思路:双层循环
i是行,j是列
第一列:j==1、最后一列:j==m、左上到右下对角线:i==j
*/
int m;
int main(){
cin>>m;
for(int i=1;i<=m;i++){//i是行
for(int j=1;j<=m;j++){//j是列
if(j==1||j==m||i==j){//判断
cout<<'+';
}else{
cout<<'-';
}
}
cout<<endl;
}
return 0;
}
文末彩蛋: