题解
- 假如k-1的图我们知道,那么得到k的图,相当于就是将k-1的图再复制4次,具体见代码。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MA=1010;
int a[MA][MA];
void change(int k){
if(k==1) {
a[1][1]=1;
return ;
}
change(k-1);
int len=pow(3,k-2);
for(int i=1;i<=len;++i){
for(int j=1;j<=len;++j){
a[i][2*len+j]=a[i][j];
a[len+i][len+j]=a[i][j];
a[2*len+i][j]=a[i][j];
a[2*len+i][2*len+j]=a[i][j];
}
}
}
int main()
{
change(7);
int n;
while(scanf("%d",&n)&&n!=-1){
int len=pow(3,n-1);
for(int i=1;i<=len;++i){
for(int j=1;j<=len;++j){
if(a[i][j])printf("X");
else printf(" ");
}
printf("\n");
}
printf("-\n");
}
return 0;
}