/*
* poj2083.cpp
*
* Created on: 2010-8-10
* Author: friendy
*/
//好神奇的递归阿……号精减
#include
#include
#include
#include
#include
using namespace std;
char map[1000][1000];
void graph(int x, int y, int n) {
int l;
if (n == 1)
map[x][y] = 'X';
else {
l = (int) pow(3.0, (double) (n - 2));
graph(x, y, n - 1);
graph(x, y + 2 * l, n - 1);
graph(x + 2 * l, y, n - 1);
graph(x + l, y + l, n - 1);
graph(x + 2 * l, y + 2 * l, n - 1);
}
}
int main(){
int i,j,n,r,max;
while(1){
scanf("%d",&n);
if(n==-1)
break;
r = (int) pow(3.0, (double) (n - 1));
graph(0, 0, n);
for (i = 0; i < r; i++) {
max = 0;
for (j = 0; j < r; j++)
if (map[i][j] == 'X')
max = j;
for (j = 0; j < max; j++)
if (map[i][j] != 'X')
map[i][j] = ' ';
map[i][max + 1] = '/0';
}
for (i = 0; i < r; i++)
printf("%s/n", map[i]);
printf("-/n");
}
}
poj2083
最新推荐文章于 2020-08-24 15:28:45 发布