输入一个 nn 行 mm 列的黑白图像,将它顺时针旋转 9090 度后输出。
输入格式
第一行包含两个整数 nn 和 mm,表示图像包含像素点的行数和列数。1 \le n \le 1001≤n≤100,1 \le m \le 1001≤m≤100。
接下来 nn 行,每行 mm 个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在 00 ~ 255255 之间。
输出格式
mm 行,每行 nn 个整数,为顺时针旋转 9090 度后的图像。相邻两个整数之间用单个空格隔开。
输出时每行末尾的多余空格,不影响答案正确性
样例输入
3 3
1 2 3
4 5 6
7 8 9
样例输出
7 4 1
8 5 2
9 6 3
思路:直接暴力输出,不要考虑这么复杂;
注意:对于方阵+另外开辟空间容易实现;
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxa=100;
int a[maxa][maxa],b[maxa][maxa];
int n,m;
void solve(){
int cnt=0;
while(cnt!=m){
for(int i=n-1;i>=0;i--)
cout<<a[i][cnt]<<" ";
cout<<endl;
cnt++;
}
}
int main(){
while(cin>>n>>m){
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
solve();
}
return 0;
}