您的位置:首页 > 其它

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

2016-03-15 22:11 183 查看
乍看没规律,分解之后发现对称。先找图形的八分之一的规律,然后再形成全图。
#include <iostream>
#include<cstdio>
#include<cstring>

using namespace std;

int a[210][210];

int main()
{
int n;
cin>>n;
int m=n*2+3;
memset(a,0,sizeof(a));
for(int i=3;i<=m;i++)
{
for(int j=1;j<=i/2-1;j++)   a[i][j*2-1]=1;
if(i%2)
for(int j=i-2;j<=m;j++) a[i][j]=1;
}
for(int i=1;i<=m;i++)
for(int j=i;j<=m;j++)
a[i][j]=a[j][i];
for(int i=1;i<=m;i++)
for(int j=1;j<=m;j++)
{
a[m+i][j]=a[m-i][j];
a[i][j+m]=a[i][m-j];
a[i+m][j+m]=a[m-i][m-j];
}
for(int i=1;i<=2*m-1;i++)
{
for(int j=1;j<=2*m-1;j++)
printf(a[i][j]==1?"$":".");
cout<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: