题目描述:
在图形学中,我们经常需要对具体的图像进行一-些处理。在这个问题中,你的任务是将一幅只包含01像素点的图片进行顺时针旋转。旋转的角度仅包含0度,90度,180度和270度。
输入格式
输入的第行是一个整数T (T≤50),表示输入的数据组数。
每组测试数据的第一.行是两个整数N和M(1≤N,M≤50),表示图片的高度和宽度。
接下来N行,每行是一个长度为M的01串,表示图片的像素点。最后一行是一个整数angle,表示旋转的角度。
输出格式
对于每组测试数据,输出旋转后得到的图片。请注意不要输出多余的空格或空行。
输入样例
2
2 3
111
000
90
3 3
111
101
111
180
输出样例
01
01
01
111
101
111
#include<stdio.h>
#include<iostream>
using namespace std;
void rot(int n,int m,int angle,char a[100][100]){//旋转90度
char c[100][100];
if(angle==0){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<a[i][j];
}
cout<<endl;
}
return;
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
c[j][n-1-i]=a[i][j];
}
}
rot(m,n,angle-90,c);
}
int main(){
int T,M,N;
int angle;
cin>>T;
while(T--){
cin>>N>>M;
char b[100][100];
for(int i=0;i<N;i++){
cin>>b[i];
}
cin>>angle;
rot(N,M,angle,b);
}
return 0;
}