| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <cstdio> #include <algorithm> char D[3072][6144]; void rec(int x, int y, int sz) { if (sz == 3) { D[x][y] = '*'; D[x + 1][y - 1] = '*'; D[x + 1][y + 1] = '*'; D[x + 2][y - 2] = '*'; D[x + 2][y - 1] = '*'; D[x + 2][y] = '*'; D[x + 2][y + 1] = '*'; D[x + 2][y + 2] = '*'; return; } sz /= 2; rec(x, y, sz); rec(x + sz, y - sz, sz); rec(x + sz, y + sz, sz); } int main() { int N; scanf("%d", &N); for (int i = 0, j = 2 * N - 1; i < N; ++i) { std::fill(&D[i][0], &D[i][j], ' '); } rec(0, N - 1, N); for (int i = 0; i < N; ++i) puts(D[i]); } |
와! 재귀호출!
아나 자꾸 양식 깨지네
개깔끔하네 ㅁㅊ 내가 짠거랑 너무 차이가 크다....
배워갑니다 형님 ㄱㅅㄱㅅ