代码能力有限,简短不了
#include<iostream>
using namespace std;
char a[11][11],f[11][11],newone[11][11],newone_fake[11][11];
int n;
bool cmp=false;
bool way_4_turn(){
int pi=1,pj=n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
newone[pi][pj--]=a[i][j];
}
pi++;
pj=n;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(newone[i][j]!=f[i][j]){
cmp=1;
return false;
}
}
}
cout<<4<<endl;
return true;
}
bool way_3_270(){
int pi=0,pj=n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
newone_fake[++pi][pj]=newone[i][j];
}
pi=0;
pj--;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
newone[i][j]=newone_fake[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(f[i][j]!=newone[i][j]){
if(way_4_turn()) return true;
return false;
}
}
}
cout<<3<<endl;
return true;
}
bool way_2_180(){
int pi=0,pj=n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
newone_fake[++pi][pj]=newone[i][j];
}
pi=0;
pj--;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
newone[i][j]=newone_fake[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(newone[i][j]!=f[i][j]){
if(way_3_270()) return true;
return false;
}
}
}
cout<<2<<endl;
return true;
}
bool way_1_90(){
int pi=0,pj=n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
newone[++pi][pj]=a[i][j];
}
pi=0;
pj--;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(f[i][j]!=newone[i][j]){
if(way_2_180()) return true;
return false;
}
}
}
cout<<1<<endl;
return true;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
int z_sum=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>f[i][j];
if(a[i][j]==f[i][j]){
z_sum++;
}
}
}
if(z_sum==n*n){
cout<<6<<endl;
return 0;
}
if(way_1_90()) return 0;
if(cmp){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
a[i][j]=newone[i][j];
}
}
if(way_1_90()){
cout<<5<<endl;
return 0;
}
cout<<7<<endl;
}
return 0;
}