#3190. T1 螺旋方阵

T1 螺旋方阵

题目描述

读入一个整数 nn,请输出一个 n×nn \times n 的螺旋方阵。

填充规则:从左上角 (1,1)(1,1) 开始,先向右填,走到边界或已经填过的格子就顺时针转 90°,直到把 1∼n21 \sim n^2 全部填完。

输入格式

一行一个整数 nn(1≤n≤201 \le n \le 20)。

输出格式

共 nn 行,每行 nn 个整数,数字占 3 个字符宽、右对齐,同行数字之间用一个空格分隔。

输入样例

4

输出样例

  1  2  3  4
 12 13 14  5
 11 16 15  6
 10  9  8  7

样例解释

向右填到 4 之后撞到右边界 → 转向下;填到 7 之后撞到下边界 → 转向左;填到 10 之后撞到左边界 → 转向上;向上走到 12 时发现 13 已经填过(进入内圈)→ 再次右转……

提示

模拟的写法不用真的"画圈":只要维护当前位置 (x,y)(x,y) 和当前方向 dd(右、下、左、上),每一步都先填数,再试走一格;如果下一格越界或已填,就 d = (d + 1) % 4 换方向再走。