蓝桥杯 打印十字图
问题描述
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入2
3
样例输出2
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<math.h> 6 using namespace std; 7 char a[1002][1002]; 8 int main() 9 { 10 int k,s,n; 11 while(~scanf("%d",&k)) 12 { 13 s=0; n=5+(4*k); 14 for(int i=0;i<n;i++) 15 for(int j=0;j<n;j++) 16 a[i][j]='.'; 17 for(int i=0;i<k;i++) 18 { 19 for(int j=s+2;j<n-2-s;j++) 20 { 21 a[s][j]='$'; 22 a[n-1-s][j]='$'; 23 a[j][s]='$'; 24 a[j][n-1-s]='$'; 25 } 26 for(int j=s;j<=s+2;j++) 27 { 28 a[j][s+2]='$'; 29 a[s+2][j]='$'; 30 a[n-1-s-2][j]='$'; 31 a[j][n-1-s-2]='$'; 32 } 33 for(int j=n-1-s-2;j<=n-1-s;j++) 34 { 35 a[n-1-s-2][j]='$'; 36 a[j][n-1-s-2]='$'; 37 a[j][s+2]='$'; 38 a[s+2][j]='$'; 39 } 40 s+=2; 41 }s+=2; 42 for(int j=s;j<=s+2;j++) 43 { 44 a[j][s]=a[s][j]='$'; 45 } 46 for(int j=s;j>=s-2;j--) 47 { 48 a[j][s]=a[s][j]='$'; 49 } 50 for(int i=0;i<n;i++) 51 { 52 for(int j=0;j<n;j++) 53 printf("%c",a[i][j]); 54 printf("\n"); 55 } 56 } 57 return 0; 58 }