整了六个函数因为懒
帮忙看看
#include<bits/stdc++.h>
using namespace std;
char a[15][15],b[15][15];
int n;
int same1()//90°
{
for(int i=0,i1=n-1;i<n;++i,i1--)
{
for(int j=0,j1=0;j<n;++j,j1++)
{
if(a[i][j]!=b[j1][i1])
return 0;
}
}
return 1;
}
int same2()//180°
{
for(int i=0,i1=n-1;i<n;++i,i1--)
{
for(int j=0,j1=n-1;j<n;++j,j1--)
{
if(a[i][j]!=b[i1][j1])
return 0;
}
}
return 1;
}
int same3()//270°
{
for(int i=0,i1=0;i<n;++i,i1++)
{
for(int j=0,j1=n-1;j<n;++j,j1--)
{
if(a[i][j]!=b[j1][i1])
return 0;
}
}
return 1;
}
int same4()//反射
{
for(int i=0;i<n;++i)
{
for(int j=0,j1=n-1;j<n;++j,--j1)
{
if(a[i][j]!=b[i][j1])
return 0;
}
}
return 1;
}
int same5()//组合
{
int f;
for(int i=0;i<n;++i)
{
for(int j=0,j1=n-1;j<n;++j,j1--)
{
f=b[i][j];
b[i][j]=b[i][j1];
b[i][j1]=f;
}
}
if(same1()||same2()||same3())
return 1;
return 0;
}
int same6()//不需要转换
{
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
if(a[i][j]!=b[i][j])
return 0;
}
}
return 1;
}
int main()
{
cin>>n;
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
cin>>a[i][j];
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
cin>>b[i][j];
if(same6())//直接一个个查
cout<<"6";
else if(same1())
cout<<"1";
else if(same2())
cout<<"2";
else if(same3())
cout<<"3";
else if(same4())
cout<<"4";
else if(same5())
cout<<"5";
else
cout<<"7";
return 0;
}
求助