- 题解
分形盒
- @ 2026-3-29 11:19:00
#define DEBUG(var) cout << "[DEBUG]" << #var << " = " << var << endl
using namespace std;
const int x = int(pow(3, 7));
int arr[x][x] = {0};
void print(int arr[][x], int n, int x, int y) {
if (n == 1)
arr[x][y] = 1;
else {
int t = int(pow(3, n - 1 - 1));
print(arr, n - 1, x, y);
print(arr, n - 1, x + t + t, y);
print(arr, n - 1, x + t, y + t);
print(arr, n - 1, x, y + t + t);
print(arr, n - 1, x + t + t, y + t + t);
}
}
int main() {
do {
int n;
scanf("%d", &n);
if (n == -1) break;
int t = int(pow(3, n - 1));
int x = 0, y = 0;
print(arr, n, x, y);
for (int i = 0; i < t; i++) {
for (int j = 0; j < t; j++) {
if (arr[i][j])
printf("X");
else
printf(" ");
}
printf("\n");
}
printf("-\n");
} while (1);
return 0;
}
0 条评论
目前还没有评论...