#include<cstdio>
#include<cmath>
#define _rep(i,a,b) for(int i=(a);i<=(b);i++)
int n,m;
char s[1010][1010];
void dfs(int x,int y,int size)
{
if(size==1){s[x][y]='X';return;}
int nsize=pow(3,size-2);
dfs(x,y,size-1);//左上
dfs(x,y+nsize*2,size-1);//右上
dfs(x+nsize,y+nsize,size-1);//中央
dfs(x+nsize*2,y,size-1);//左下
dfs(x+nsize*2,y+nsize*2,size-1);//右下
}
int main()
{
//freopen("in.txt","r",stdin);
while(scanf("%d",&n)&&(~n))
{
m=pow(3,n-1);
_rep(i,1,m)_rep(j,1,m)s[i][j]=' ';
dfs(1,1,n);
_rep(i,1,m)
{
_rep(j,1,m)putchar(s[i][j]);
puts("");
}
printf("-\n");;
}
return 0;
}
【题解】poj2083 递归画分形图
最新推荐文章于 2020-12-05 17:39:12 发布