/*
***********
* *
* ******* *
* * * *
* * *** * *
* * * * * *
* * *** * *
* * * *
* ******* *
* *
***********
观察这个图形,它是由一系列正方形的星号方框嵌套而成。
在上边的例子中,最外方框的边长为11。
本题的任务就是从标准输入获得一个整数n(1<n<100)
程序则生成嵌套着的回字型星号方框。其最外层方框的边长为n
*/
#include<iostream.h>
#define N 50
char m[N][N]={''};
int point_x=0,point_y=0;
void print(int n)
{
if(n==1)m[point_x][point_y]='*';
if(n>=1)
{
//上-->下
for(int k=point_x+1;k<=point_x+n-1;k++)
m[k][point_y]='*';
//左-->右
for(k=point_y+1;k<=point_x+n-1;k++)
m[point_x+n-1][k]='*';
//下-->上
for(k=point_x+n-2;k>=point_x;k--)
m[k][point_x+n-1]='*';
//右-->左
for(k=point_y+n-2;k>=point_y;k--)
m[point_x][k]='*';
point_x+=2,point_y+=2;
print(n-4);
}
}
int main()
{
int n;
cin>>n;
print(n);
for(int i=0;i<50;i++)
{
for(int j=0;j<50;j++)
cout<<m[i][j];
cout<<endl;
}
return 0;
}