求助,只输出6和7
CODE:
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<ctime>
#include<ios>
#include<iostream>
#include<float.h>
#include<map>
#include<string>
#include<queue>
#include<vector>
using namespace std;
int n;
char yuan[15][15],ans[15][15],now[15][15],now1[15][15];
//原图形 目标图形 处理后图形 备份
bool check(){//判断函数
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
if(now[i][j]!=ans[i][j])return false;
}
return true;
}
bool ans1(){//翻转90度
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][j]=yuan[n-1-j][i];
return check();
}
bool ans2(){//翻转180度
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][j]=yuan[n-1-i][n-1-j];
return check();
}
bool ans3(){//翻转270度
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][j]=yuan[j][n-1-i];
return check();
}
bool ans4(){//反射
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][n-j+1]=yuan[i][j];
return check();
}
bool ans5(){//组合
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][n-j+1]=yuan[i][j];
for(int i=1;i<=n;i++)//备份
for(int j=1;j<=n;j++)
now1[i][j]=now[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][j]=now1[n-1-j][i];
if(check()==true)return true;//反射+ 转90°
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][n-j+1]=yuan[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][j]=now1[n-1-i][n-1-j];
if(check()==true)return true;//反射+转180°
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][n-j+1]=yuan[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
now[i][j]=now1[j][n-1-i];
if(check()==true)return true;//反射+转270°
return false;
}
int main(){
cin>>n;
cout<<n<<endl;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
yuan[i][j]=getchar();
getchar();
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
ans[i][j]=getchar();
getchar();
}
bool flag=0;//6
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
if(yuan[i][j]!=ans[i][j]){
flag=1;
i=n+1;
}
}
if(flag==0){
cout<<6;
return 0;
}
if(ans1()==true){
cout<<1;
return 0;
}
if(ans2()==true){
cout<<2;
return 0;
}
if(ans3()==true){
cout<<3;
return 0;
}
if(ans4()==true){
cout<<4;
return 0;
}
if(ans5()==true){
cout<<5;
return 0;
}else{
cout<<7;
return 0;
}
}