问题描述
小明为某机构设计了一个十字型的徽标,如下所示:
层数为4层
输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例1
n=1
n=3
算法分析
这种题目一般是找规律来按照格式输出图,看到上面那三个层数分别为1,3,4的图形,我们慢慢的找规律,发现层数为1的话就是中间一个十字,外面套一圈黑点,再套一圈$符号,那么层数为n就是,中间一个十字,重复n次外面套一圈黑点,再套一圈符号,规律我们分析完之后看这个图像是中心轴对称的图像,我们可以考虑先制作四分之一,再复制过来,好,现在问题就是如何制作那个四分之一,我们再看四分之一的图像
我们看到这个四分之一的图像,我们按照ABC三部分拆分它,AC部分就是一个直角三角形,按照层数块渐渐变多,一个for循环就可以搞定,B部分是挑一个三个小方块,也是一个for循环就搞定,这样一看,就简单多了
代码解析
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
char map[150][150];
void print(int n){
//打印图形
for(int i=0;i<4*n+5;i++){
//我们找到了规律,层数为n,边长为4*n+5
for(int j=0;j<4<