| 时间限制 | 内存限制 | 
|---|---|
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;  | |
} |