为什么错了?
查看原帖
为什么错了?
1295820
ClV_Csy楼主2024/6/6 20:58
#include <iostream>
#include <string>
using namespace std;
string a[11],b[11],c[11];
int n;
bool ff=1;
bool judge()
{
	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;
}
void work1()
{
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			b[j][n-i+1]=a[i][j];
}
void work2()
{
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			b[n-i+1][n-j+1]=a[i][j];
}
void work3()
{
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			b[n-j+1][i]=a[i][j];
}
void work4()
{
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			b[i][n-j+1]=a[i][j];
}
void work5()
{
	string d[11];
	work4();
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			d[i][j]=b[i][j];
	
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			b[j][n-i+1]=d[i][j];
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			if (c[i][j]!=d[i][j])
				ff=0;
	if (ff)
		return;
	else
		ff=1;
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			b[n-i+1][n-j+1]=d[i][j];
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			if (c[i][j]!=d[i][j])
				ff=0;
	if (ff)
		return;
	else
		ff=1;
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			b[n-j+1][i]=d[i][j];
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			if (c[i][j]!=d[i][j])
				ff=0;
}
int main()
{
	cin>>n;
	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>>c[i][j];
	work1();
	if (judge())
	{
		cout<<1;
		return 0;
	}
	work2();
	if (judge())
	{
		cout<<2;
		return 0;
	}
	work3();
	if (judge())
	{
		cout<<3;
		return 0;
	}
	work4();
	if (judge())
	{
		cout<<4;
		return 0;
	}
	work5();
	if (ff)
	{
		cout<<5;
		return 0;
	}
	bool flag=1;
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			if (a[i][j]!=c[i][j])
				flag=0;
	if (flag)
	{
		cout<<7;
		return 0;
	}
	cout<<7;
	return 0;
}
2024/6/6 20:58
加载中...