旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转 9090 度。
计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
输入格式
输入的第一行包含两个整数 n,mn,m,分别表示图像矩阵的行数和列数。
接下来 nn 行每行包含 mm 个整数,表示输入的图像。
输出格式
输出 mm 行,每行包含 nn 个整数,表示原始矩阵逆时针旋转 9090 度后的矩阵。
数据范围
1≤n,m≤1,0001≤n,m≤1,000,
矩阵中的数都是不超过 10001000 的非负整数。
输入样例:
2 3
1 5 3
3 2 4
输出样例:
3 4
5 2
1 3
代码如下:
#include<iostream>
#include<cstring>
using namespace std;
int m, n;
int a[1005][1005], res[1005][1005];
void B() {
m ^= n ^= m ^= n;
memset(res, 0, sizeof(res));
for (int k = 1, i = n; k <= n, i >= 1; k ++, i --) {
for (int r = 1, j = 1; r <= m, j <= m; r ++, j ++) {
res[k][r] = a[j][i];
}
}
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= m; j ++)
cin >> a[i][j];
B();
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++) {
cout << res[i][j] << " ";
}
cout << "\n";
}
return 0;
}