1598: 旋转矩阵(PIPIPOJ)
题目描述
给定一个n*n的矩阵M,请将M顺时针旋转90°后输出。
输入
第一行输入T(1<=T<=100)表示测试样例个数。
对于每一组样例,第一行输入数字n(1<=n<=100),代表矩阵大小。
接下来输入一个n*n的二维整数数组,代表需要旋转的矩阵。
输出
对于每一组样例,输出按顺时针旋转90°后的矩阵。
样例输入
2
2
1 2
2 1
3
1 2 3
4 5 6
7 8 9
样例输出
2 1
1 2
7 4 1
8 5 2
9 6 3
题解1(C++版本)
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
int t, n, mp[N][N];
int main(){
scanf("%d", &t);
while(t--){
scanf("%d", &n);
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++)scanf("%d", &mp[i][j]);
}
// 顺时针旋转90度
// 针对每列的输出:从第1列的最后一行开始,到第1列的第一行依次输出,再处理第2列,...第n列
for(int j = 1; j <= n; j++){
for(int i = n; i >= 1; i --){
printf("%d ", mp[i][j]);
}
printf("\n");
}
}
return 0;
}