p2423.cpp
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 58 行
CPP
58 行
#include <iostream.h>
#include <math.h>
bool map[8][730][730];
int num[8];
void MakeMap();
void Print(int n);
void Print(int n)
{
int i,j,k;
for (i=1;i<=num[n];i++) {
for (j=num[n];! map[n][i][j];j--);
for (k=1;k<=j;k++)
if (map[n][i][k]) cout<<'X';
else cout<<' ';
cout<<endl;
}
cout<<'-'<<endl;
}
void MakeMap()
{
int i,j,k,len;
num[1]=1;
for (i=2;i<8;i++) num[i]=num[i-1] * 3;
for (i=1;i<=7;i++) for (j=1;j<730;j++) for (k=1;k<730;k++) map[i][j][k]=false;
map[1][1][1]=true;
len=1;
for (i=2;i<=7;i++) {
for (j=1;j<=len;j++) {
for (k=1;k<=len;k++) {
map[i][j][k]=
map[i][j][len+len+k]=
map[i][j+len][len+k]=
map[i][j+len+len][k]=
map[i][j+len+len][k+len+len]=
map[i-1][j][k];
}
}
len*=3;
}
}
main()
{
int n;
MakeMap();
while (cin>>n && n!=-1) {
Print(n);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?