ITP1_5_B: Print a Frame
フレームの描画 | プログラミング入門 | Aizu Online Judge
繰り返し構文を用いて2種類の文字列を出力する問題
四角形の枠と中身とで条件分岐させます。
枠を出力するのは、最初と最後の行と、そのほかの行の最初と最後の列です。
解答1
while True: H, W = map(int, input().split()) if H == 0 and W == 0: break for i in range(H): if i == 0 or i == H - 1: print('#' * W) else: print('#' + '.' * (W - 2) + '#') print('')
解答2
条件分岐を*演算子
で代用しています。
while True: H, W = map(int, input().split()) if H == 0 and W == 0: break print('#' * W + '\n' + ('#' + '.' * (W - 2) + '#' + '\n') * (H - 2) + '#' * W + '\n')