题解 | #旋转矩阵#
旋转矩阵
https://www.nowcoder.com/practice/bd62095a03a545729cdbfc506e0da952
#include<cstdio>
int matrix1[9][9],matrix2[9][9],tmp[9][9];
bool IsEqual(int a[9][9],int b[9][9],int n){
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
if(a[i][j]!=b[i][j])
return false;
return true;
}
void rotate(int a[9][9],int b[9][9],int n){
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
b[j][n-1-i]=a[i][j];
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
a[i][j]=b[i][j];
}
int main(){
int n,result;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
scanf("%d",&matrix1[i][j]);
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
scanf("%d",&matrix2[i][j]);
if(IsEqual(matrix1,matrix2,n))
printf("0\n");
else{
rotate(matrix1,tmp,n);
if(IsEqual(matrix1,matrix2,n))
printf("90\n");
else{
rotate(matrix1,tmp,n);
if(IsEqual(matrix1,matrix2,n))
printf("180\n");
else{
rotate(matrix1,tmp,n);
if(IsEqual(matrix1,matrix2,n))
printf("270\n");
else
printf("-1\n");
}
}
}
}
return 0;
}
