矩阵圈层90度交错旋转 题目描述: 给定一个n x n的二维整数矩阵,你需要对这个矩阵的每一“圈层”的元素进行交错旋转,规则如下: 圈层的定义: (1)矩阵从最外层开始,向内逐层定义“圈层”。最外层的元素构成第一圈层,移除最外层后剩余矩阵的最外层元素构成第二圈层,以此类推。 (2)如果n为奇数,最中心的一个元素属于最内层的圈层,且旋转后其值不改变。 旋转方向: (1)最外层(第一圈层)的元素按照顺时针方向整体旋转90度。 (2)次外层(第二圈层)的元素按照逆时针方向整体旋转90度。 (3)再往内一层(第三圈层)的元素按照顺时针方向整体旋转90度。 以此类推,圈层的旋转方向在顺时针和逆时针之间交替进行。 旋转范围: 每一圈层的旋转仅限于该圈层内的元素。 例:一个6x6矩阵的圈层和旋转方向定义如下: 例:当n=4,原始矩阵经过圈层交错旋转后结果如下: 输入描述: 第一行输入一个正整数n(2≤n≤100),表示矩阵的行数和列数; 接下来n行,每行输入n个整数(-1000≤整数≤1000),整数之间以一个空格隔开。 输出描述: 输出n行,每行n个整数,整数之间以一个空格隔开,表示经过圈层交错旋转90度变换后的矩阵。 样例输入: 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 样例输出: 13 9 5 1 14 7 11 2 15 6 10 3 16 12 8 4


正确答案:逐层(圈层)处理。第l层从0起为外圈,方向交替:偶数层顺时针90度、奇数层逆时针90度。取该层外圈元素列表按方向整体循环移位后放回;中心单元素不动。
答案解析
评分标准:
(1)能正确输出一组数据;(10分)
(2)能正确输出两组数据;(10分)
(3)能正确输出三组数据;(10分)
(4)能正确输出四组数据;(10分)
(5)能正确输出五组数据;(10分)
(6)能正确输出六组数据。(10分)
试卷来源:202508(第16届)蓝桥杯C++编程青少组(省赛_初/中级)真题