Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 6646 | Accepted: 3297 |
Descriptionios
B(n - 1) B(n - 1)
B(n - 1)
B(n - 1) B(n - 1)
Inputapp
Outputspa
Sample Inputcode
1 2 3 4 -1
Sample Outputblog
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 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 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 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 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 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 X X X X X X -
#include <stdio.h> #include <math.h> #include <iostream> using namespace std; char Map[1000][1000]; void DFS(int n, int x, int y) { if (n == 1) { Map[x][y] = 'X'; return; } int size = pow(3.0, n - 2); DFS(n - 1, x, y);// 左上角 DFS(n - 1, x, y + size * 2);//右上角 DFS(n - 1, x + size, y + size);//中間 DFS(n - 1, x + size * 2, y);//左下角 DFS(n - 1, x + size * 2, y + size * 2);//右下角 } int main() { int n, size; while(scanf("%d", &n) != NULL && n != -1) { size = pow(3.0, n - 1); for (int i = 0; i <= size; i++) { for (int j = 0; j <= size; j++) { Map[i][j] = ' '; } Map[i][size + 1] = '\0'; } DFS(n, 1, 1); for (int i = 1; i <= size; i++) { printf("%s\n", Map[i] + 1); } printf("-\n"); } return 0; }