这道题是本蒟蒻写过的行数最多,耗时最长的一道题了。
我的写法:1.全局变量:定义四个char数组,前两个存输入,第三个存1,2,3,4的变化后,第四个存5的变化,还有一个bool变量判断是否相同(亲测麻烦但有效)
为了应讨论区规定,展示一个非AC代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=15;
int n;
char maze1[maxn][maxn],maze2[maxn][maxn],x[maxn][maxn],x2[maxn][maxn];
bool f=1;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>maze1[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>maze2[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
x[i][j]=maze1[n-j+1][i];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(x[i][j]!=maze2[i][j])
f=0;
if(f)
{
cout<<1;
return 0;
}
f=1;
//2至4变化省略
f=1;
//5是重点!
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
x2[i][j]=x[n-j+1][i];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(x2[i][j]!=maze2[i][j])
f=0;
if(f)
{
cout<<5;
return 0;
}
f=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
x2[i][j]=x[n-i+1][n-j+1];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(x2[i][j]!=maze2[i][j])
f=0;
if(f)
{
cout<<5;
return 0;
}
f=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
x2[i][j]=x[j][n-i+1];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(x2[i][j]!=maze2[i][j])
f=0;
if(f)
{
cout<<5;
return 0;
}
f=1;
//6、7省略
return 0;
}
然后就是我得到这篇代码的“艰辛”过程——从函数写到for循环再到纯模拟,从不输出改到只输出5再到只输出1……
不过结果是好的,愿各位读者也坚持不懈,在编程道路上书写自己的辉煌!加油!
真不是发布题解,别举报啊,只是提供思路和格式而已