57分求助
查看原帖
57分求助
393811
大海中的孤帆楼主2022/9/17 07:41

整了六个函数因为懒
帮忙看看

#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;
}

求助

2022/9/17 07:41
加载中...