时间限制 | 内存限制 |
---|---|
1000 ms |
65536 KB |
# 题目描述
给出一个正整数 ,请输出一个 大小的 X 形状的图案,由字符 /
, \
和空格构成。
此外,要求在 X 形图案外围用一圈字符 %
包围,字符 %
包围圈和 X 形图案间用一圈空格隔开。
具体见样例。
# 输入格式
一行一个正整数 ,保证 。
# 输出格式
输出共 行,每行共 个字符,表示输出图案。
其中,中央的 行 列为 X 形图案,向外一圈为空格,最外一圈为字符 %
。
# 输入样例 1
2 |
# 输出样例 1
%%%%%%%% | |
% % | |
% \ / % | |
% \/ % | |
% /\ % | |
% / \ % | |
% % | |
%%%%%%%% |
# 输入样例 2
5 |
# 输出样例 2
%%%%%%%%%%%%%% | |
% % | |
% \ / % | |
% \ / % | |
% \ / % | |
% \ / % | |
% \/ % | |
% /\ % | |
% / \ % | |
% / \ % | |
% / \ % | |
% / \ % | |
% % | |
%%%%%%%%%%%%%% |
# 题解:模拟
直接按照题意模拟即可。
时间复杂度:。
参考代码:
#include <stdio.h> | |
int n; | |
int main() | |
{ | |
// freopen("G.in", "r", stdin); | |
// freopen("G.out", "w", stdout); | |
scanf("%d", &n); | |
for (int i = 1; i <= (n << 1) + 4; ++ i) | |
putchar('%'); | |
printf("\n%%"); | |
for (int i = 1; i <= (n << 1) + 2; ++ i) | |
putchar(' '); | |
puts("%"); | |
for (int i = 1; i <= n; ++ i) | |
{ | |
printf("%% "); | |
for (int j = 1; j < i; ++ j) | |
putchar(' '); | |
putchar('\\'); | |
for (int j = 1; j <= ((n - i) << 1); ++ j) | |
putchar(' '); | |
putchar('/'); | |
for (int j = 1; j < i; ++ j) | |
putchar(' '); | |
puts(" %"); | |
} | |
for (int i = 1; i <= n; ++ i) | |
{ | |
printf("%% "); | |
for (int j = 1; j <= n - i; ++ j) | |
putchar(' '); | |
putchar('/'); | |
for (int j = 1; j <= ((i - 1) << 1); ++ j) | |
putchar(' '); | |
putchar('\\'); | |
for (int j = 1; j <= n - i; ++ j) | |
putchar(' '); | |
puts(" %"); | |
} | |
putchar('%'); | |
for (int i = 1; i <= (n << 1) + 2; ++ i) | |
putchar(' '); | |
puts("%"); | |
for (int i = 1; i <= (n << 1) + 4; ++ i) | |
putchar('%'); | |
return 0; | |
} |