题解 | #旋转矩阵#
旋转矩阵
https://www.nowcoder.com/practice/bd62095a03a545729cdbfc506e0da952
#include <iostream> using namespace std; const int N = 10; int g[N][N], t[N][N], tmp[N][N]; int n; bool flag = false; void turn(){ for(int i = 0; i < n; i ++) for(int j = 0, k = n - 1; j < n; j ++, k --) tmp[i][j] = g[k][i]; for(int i = 0; i < n; i ++) for(int j = 0; j < n; j ++) g[i][j] = tmp[i][j]; } bool issame(){ for(int i = 0; i < n; i ++) for(int j = 0; j < n; j ++) if(g[i][j] != t[i][j]) return false; return true; } int main(){ cin>>n; for(int i = 0; i < n; i ++) for(int j = 0; j < n; j ++) cin>>g[i][j]; for(int i = 0; i < n; i ++) for(int j = 0; j < n; j ++) cin>>t[i][j]; for(int i = 0; i < 4; i ++){ if(issame()){ flag = true; cout<<i * 90<<endl; break; } turn(); } if(!flag) cout<<-1<<endl; return 0; }