diff --git a/P10458.cpp b/P10458.cpp new file mode 100644 index 0000000..6510982 --- /dev/null +++ b/P10458.cpp @@ -0,0 +1,53 @@ +// 118 +#include +using namespace std; +int n; +bool a[1000][1000]; +void cal(int n, int x, int y) +{ + if (n == 1) + { + a[x][y] = 1; + return; + } + /* +X X X X + X X +X X X X + X X + X + X X +X X X X + X X +X X X X + */ + int m = pow(3, n - 2); + cal(n - 1, x, y); + cal(n - 1, x, y + 2*m); + cal(n - 1, x + m, y+m); + cal(n - 1, x + 2 * m, y); + cal(n - 1, x + 2 * m, y + 2*m); +} +int main() +{ + while (cin >> n) + { + memset(a, 0, sizeof a); + if (n < 0) + break; + cal(n, 0, 0); + for (int i = 0; i < pow(3,n-1); ++i) + { + for (int j = 0; j < pow(3,n-1); ++j) + { + if (a[i][j] == 1) + putchar('X'); + else + putchar(' '); + } + putchar('\n'); + } + puts("-"); + } + return 0; +} \ No newline at end of file