直接上代码
#include<iostream>
using namespace std;
int i,j;
//看着难,其实很简单,每一种情况在本上写下坐标变化就能发现规律
//用来对比,只要有一个不一样的就不是答案
bool g(char b[10][10],char c[10][10],int n){
for(int i=1;i<n;i++)
for(int j=1;j<n;j++){
if(b[i][j]!=c[i][j])
return 0;
}
return 1;
}
int main(){
int N;
cin>>N;
char a[10][10],b[10][10],c[10][10];//a是本身,b是题要求变化的,c是你自己变化的
//输入 //用题要求变化的和自己变化的情况一一对比
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
cin>>a[i][j];
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
cin>>b[i][j];
//顺时针90度
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++){
c[i][j]=a[N-j+1][i];
}
if(g(b,c,N)){
cout<<1;
return 0;
}
//逆时针90度
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++){
c[i][j]=a[j][N-i+1];
}
if(g(b,c,N)){
cout<<2;
return 0;
}
//对应
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++){
c[i][j]=a[N-i+1][N-j+1];
}
if(g(b,c,N)){
cout<<3;
return 0;
}
//不变
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++){
c[i][j]=a[i][j];
}
if(g(b,c,N)){
cout<<4;
return 0;
}
//其他
cout<<5;
return 0;
}