BOJ 2447星図-10


https://www.acmicpc.net/problem/2447
1秒、256 MBメモリ
input :
  • N(3の累加二乗、すなわちある整数kに対してN=3^k、このとき1≦k<8)
  • である.
    output :
  • 第1行から第N行まで出力恒星
  • nの入力を受け入れ、3で割ったものをstarに入れます.
    n=27とは、範囲を9とし、9画面を触ることを意味する.
    9つのうちの1つを除いて、星を削除します.
    回帰で4つの部分を分けたように9点でしょう
    import sys
    
    n = int(sys.stdin.readline())
    graph = [["*"] * n for i in range(n)]
    
    def star(x, y, n):
    
        for i in range(x + n, x + 2 * n):
            for j in range(y + n, y + 2 * n):
                graph[i][j] = " "
        if n != 1:
            part = n // 3
            star(x, y, part)
            star(x, y + n, part)
            star(x, y + 2 * n, part)
            star(x + n, y, part)
            star(x + n, y + 2 * n, part)
            star(x + 2 * n, y, part)
            star(x + 2 * n, y + n, part)
            star(x + 2 * n, y + 2 * n, part)
    
    
    star(0, 0, n // 3)
    
    for i in range(len(graph)):
        for j in range(len(graph)):
            print(graph[i][j], end="")
        print()