网格系统网站,九洲建设集团网站,最火的网络推广平台,银川网站建设nx110任意输入两个 9 阶以下矩阵#xff0c;要求判断第二个是否是第一个的旋转矩阵#xff08;顺时针#xff09;#xff0c;如果是#xff0c;输出旋转角度#xff08;0、90、180、270#xff09;#xff0c;如果不是#xff0c;输出 −1。
输入格式
第一行包含整数 n要求判断第二个是否是第一个的旋转矩阵顺时针如果是输出旋转角度0、90、180、270如果不是输出 −1。
输入格式
第一行包含整数 n表示矩阵阶数。
接下来 n行每行包含 n 个空格隔开的整数表示第一个矩阵。
再接下来 n 行每行包含 n 个空格隔开的整数表示第二个矩阵。
输出格式
判断第二个矩阵是否是第一个的旋转矩阵如果是输出旋转角度0、90、180、270如果不是输出 −1。
如果旋转角度的结果有多个则输出最小的那个。
数据范围
1≤n≤9 矩阵中元素取值范围 [1,9][1,9]
输入样例
解释 3 1 2 3 4 5 6 7 8 9 7 4 1 8 5 2 9 6 3 输出样例
90
#includebits/stdc.h
using namespace std;int n;
const int M 10;
int a1[M][M],a2[M][M];void input(){for(int i 1; i n; i){for(int j 1; j n; j){cina1[i][j];}}for(int i 1; i n; i){for(int j 1; j n; j){cina2[i][j];}}
}int cheak(){//0度int b1;for(int i 1;in;i){for(int j 1; jn;j){if(a1[i][j]a2[i][j]){}else{b0;break;}}}if(b)return 0;b1;//90度for(int i 1; in; i){for(int j 1; jn;j){if(a1[i][j]a2[j][n-i1]){}else{b0;break;}}}if(b)return 90;b1;for(int i 1; in; i){for(int j 1; jn;j){if(a1[i][j]a2[n-i1][n-j1]){}else{b0;break;}}}if(b)return 180;b1;for(int i 1; in; i){for(int j 1; jn;j){if(a1[i][j]a2[n-j1][i]){}else{b0;break;}}}if(b)return 270;return -1;
}int main()
{cinn;input();coutcheak()\n;return 0;
}