gesp(二级)(12)洛谷:B3955:[GESP202403 二级] 小杨的日字矩阵

gesp(二级)(12)洛谷:B3955:GESP202403 二级 小杨的日字矩阵

题目描述

小杨想要构造一个 N × N N\times N N×N 的日字矩阵( N N N 为奇数),具体来说,这个矩阵共有 N N N 行,每行 N N N 个字符,其中最左列、最右列都是 |,而第一行、最后一行、以及中间一行(即第 N + 1 2 \frac{N+1}{2} 2N+1 行)的第 2 ∼ N − 1 2\sim N-1 2∼N−1 个字符都是 - ,其余所有字符都是半角小写字母 x 。例如,一个 N = 5 N = 5 N=5 日字矩阵如下:

复制代码
|---|
|xxx|
|---|
|xxx|
|---|

请你帮小杨根据给定的 N N N 打印出对应的"日字矩阵"。

输入格式

一行一个整数 N N N( 5 ≤ N ≤ 49 5\leq N \leq 49 5≤N≤49,保证 N N N 为奇数)。

输出格式

输出对应的"日字矩阵"。

请严格按格式要求输出,不要擅自添加任何空格、标点、空格等任何符号。你一个恰好输出 N N N 行,每行除了换行符外恰好包含 N N N 个字符,这些字符要么是 -,要么是 |,要么是 x你的输出必须和标准答案完全一致才能得分,请在提交前仔细检查

样例 #1

样例输入 #1

复制代码
5

样例输出 #1

复制代码
|---|
|xxx|
|---|
|xxx|
|---|

样例 #2

样例输入 #2

复制代码
7

样例输出 #2

复制代码
|-----|
|xxxxx|
|xxxxx|
|-----|
|xxxxx|
|xxxxx|
|-----|

AC代码(100分)

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
//按题意模拟 
int n;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){//外层循环控制行 
		if(i==1 || i==(n+1)/2 || i==n){//第一行、中间行、最后一行 
			for(int j=1;j<=n;j++){
				if(j==1 || j==n){//每行的第一列和最后一列 
					cout<<'|';
				}else{//其它列 
					cout<<'-';
				}
			}		
		}else{//其它行 
			for(int j=1;j<=n;j++){
				if(j==1 || j==n){
					cout<<'|';
				}else{
					cout<<'x';
				}
			}
		}
		cout<<endl;
	}
	return 0;
}

文末彩蛋:

点击王老师青少年编程主页有更多精彩内容

相关推荐
aramae9 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
荆棘鸟智能9 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
知识分享小能手12 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
qq_1998868713 小时前
第8板块·第2节:统一内存的高级特性与性能调优
c++·人工智能·gpu算力·cuda
INGNIGHT13 小时前
270 · 电话号码的字母组合II(Trie)
linux·算法
2401_8390805414 小时前
C++常见八股
数据结构·c++·算法
qq_1998868714 小时前
第6板块 第2节 CUDA运行时API与驱动API 核心笔记
c++·人工智能·gpu算力
青山是哪个青山14 小时前
LeetCode 188:买卖股票的最佳时机 IV
算法
mikuyyds14 小时前
geo-toolbox 插件算法解析:RUSLE 与 MUSLE 的工程化落地
算法·rust·gis
a1879272183114 小时前
【算法】树(二):队列与祖先——BFS 骨架三配件、短路透传与合流
算法·leetcode·二叉树··bfs·算法讲解·树遍历