给定一个 n × n 的二维整数矩阵,需要对矩阵的每一圈层进行交错旋转(顺时针和逆时针交替),具体规则如下:
圈层定义:
从最外层开始向内逐层定义,最外层为第1圈层,向内依次为第2圈层、第3圈层等。
若 n 为奇数,最中心的单个元素为最内圈层,且不旋转(值不变)。
旋转方向:
第1圈层:顺时针旋转90度。
第2圈层:逆时针旋转90度。
第3圈层:顺时针旋转90度。
以此类推,方向交替进行。
旋转范围:
每圈层的旋转仅影响该圈层内的元素。
解释:
第1圈层(最外层)顺时针旋转90度。
第2圈层(内层)逆时针旋转90度。
输入要求:
第一行输入一个正整数 n(2 ≤ n ≤ 100),表示矩阵的行数和列数。
接下来 n 行,每行输入 n 个整数(-10000 ≤ 数值 ≤ 10000),表示矩阵元素,整数间用空格隔开。
输出要求:
输出 n 行,每行 n 个整数,表示旋转后的矩阵,整数间用空格隔开。
4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
13 9 5 1 14 6 7 2 15 10 11 3 16 12 8 4
示例:
输入(n=4):
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
输出:
13 9 5 1
14 6 7 2
15 10 11 3
16 12 8 4
关键点:
圈层划分:按从外到内的顺序逐层处理。
旋转方向交替:奇数圈层顺时针,偶数圈层逆时针。
中心元素:若 n 为奇数,中心元素不旋转。
数据范围:
矩阵大小:2^2 到 102×102。
元素值范围:-10^9 到 10^9。