蓝桥杯打印十字图(图形规律)

Posted LesRoad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯打印十字图(图形规律)相关的知识,希望对你有一定的参考价值。

题目描述

小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:

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

对方同时也需要在电脑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 }

以上是关于蓝桥杯打印十字图(图形规律)的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥杯-打印十字图

蓝桥杯历届试题 打印十字图

[蓝桥杯][历届试题]打印十字图

蓝桥杯 历届试题 打印十字图

第四届蓝桥杯javaC组_打印十字图

ALGO-145_蓝桥杯_算法训练_4-1打印下述图形