【藍橋杯】打印十字圖(圖形規律)


題目描述

小明為某機構設計了一個十字型的徽標(並非紅十字會啊),如下所示:

..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..

對方同時也需要在電腦dos窗口中以字符的形式輸出該標志,並能任意控制層數。

輸入1 ,則輸出

..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..

輸入

一個正整數 n (n< 30)  表示要求打印圖形的層數。 

輸出

對應包圍層數的該標志。 

樣例輸入

3

樣例輸出

..$$$$$$$$$$$$$.. 
..$...........$.. 
$$$.$$$$$$$$$.$$$ 
$...$.......$...$ 
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$.. 

提示

請仔細觀察樣例,尤其要注意句點的數量和輸出位置。 

思路

從最外層開始打印‘$’, 先打印橫線和豎線上的‘$’,再打印四個角的直角‘$’

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char s[220][220];
 4 int main()
 5 {
 6     int n;
 7     scanf("%d",&n);
 8     int o=n*4+5;
 9     int l=2,a=0;
10     memset(s,'.',sizeof(s));
11     n++;
12     while(n--)
13     {
14         for(int i=l; i<o-l; i++)
15             s[a][i]=s[i][a]=s[i][o-a-1]=s[o-a-1][i]='$';
16         s[a+1][l]=s[l][a+1]=s[l][l]='$';//左上
17         s[a+1][o-1-l]=s[l][o-a-2]=s[l][o-1-l]='$';//右上
18         s[o-a-2][l]=s[o-1-l][a+1]=s[o-1-l][l]='$';//左下
19         s[o-a-2][o-1-l]=s[o-1-l][o-a-2]=s[o-1-l][o-1-l]='$';//右下
20         a+=2;
21         l+=2;
22     }
23     for(int i=0; i<o; i++)
24     {
25         for(int j=0; j<o; j++)
26             putchar(s[i][j]);
27         putchar('\n');
28     }
29     return 0;
30 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM