https://ok.hn.cn/p/GESP2312C2B
问题描述
输入描述
一行一个整数 N( 5≤N≤49,保证 N 为奇数)。
输出描述
输出对应的“H 字矩阵”。 请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出 N行,每行除了换行符外恰好包含 N个字符,这些符要么是 - ,要么是 | ,要么是 a 。你的输出必须和标准答案完全一致才能得分, 请在提交前仔细检查。
特别提醒
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任 何提示信息。
题解
可以先按行、列输出 全部为’a’ 或 ‘-’ 是 n 行 n 列图形,再通过整理 ‘|’ 所在的行列关系,做条件判断进行替换输出
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
if (j == 1 || j == n) {//第一列或者最后一列,输出|
cout << '|';
} else if (i == n / 2 + 1) {//中间行,输出-
cout << '-';
} else {//其他,输出a
cout << 'a';
}
}
cout << endl;
}
return 0;
}
视频题解
n = int(input())
for i in range(1,n+1):
if i == (n+1) // 2:
print("|","-"*(n-2),"|",sep="")
else:
print("|","a"*(n-2),"|",sep="")