题解 | #旋转矩阵# 二维数组的调用
旋转矩阵
https://www.nowcoder.com/practice/bd62095a03a545729cdbfc506e0da952
#include <iostream> using namespace std; const int N = 10; int n; int a[N][N], b[N][N]; bool fn(int x[N][N], int y[N][N]) //写x[n][n], y[n][n]会报错 { bool sign = true; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) if(x[i][j] != y[i][j]) { sign = false; break; } if(sign) return true; return false; } void rever(int a[N][N]) // 写a[n][n]会报错 { int c[N][N]; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) c[i][j] = a[i][j]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { a[i][j] = c[n-1-j][i]; } } } int main() { while(cin >> 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]); bool sign = false; for(int k = 0; k < 4; k++) { if(fn(a, b)) { cout << k * 90 << endl; sign = true; break; } rever(a); } if(!sign) puts("-1"); } } // 64 位输出请用 printf("%lld")