丑陋的代码
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
int a[10][10], b[10][10]; // 避免传递二维数组麻烦
// 逆时针旋转 90 度
void rotate90Clockwise(int n) {
int temp[10][10];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
temp[i][j] = b[i][j];
}
}
// 通过赋值完成旋转
for (int j = n - 1; j >= 0; j--) {
for (int i = 0; i < n; i++) {
b[n - j - 1][i] = temp[i][j];
}
}
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &b[i][j]);
}
}
// 判断b是否是a旋转过的矩阵
int cnt = 0;
while (cnt < 4) {
bool flag = true;
// 旋转过判断是否相同
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (a[i][j] != b[i][j]) {
flag = false;
break;
}
}
if (!flag) break; // 前面已经有不匹配的了,以后的行也不需要比较
}
if (!flag) {
//将矩阵b旋转90度再次比较
rotate90Clockwise(n);
cnt++;
}
else {
break;
}
}
if (cnt < 4) { // 已经匹配完提前出来的
printf("%d\n", cnt * 90);
}
else {
printf("-1\n");
}
return 0;
}

京公网安备 11010502036488号