变幻的矩阵

来源:互联网 发布:ubuntu core 16 pi3 编辑:程序博客网 时间:2024/05/16 11:50

#include<bits/stdc++.h>
using namespace std;
int main()
{
 char a[11][11],b[11][11];
 int sum=0,sum2=0,sum3=0,n;
 cin>>n;
 for(char i=1;i<=n;i++)
 for(char j=1;j<=n;j++)
 cin>>a[i][j];
 for(char i=1;i<=n;i++)
 for(char j=1;j<=n;j++)
 {
 cin>>b[i][j];   //输入数组
 if(b[i][j]==a[i][j]) sum++;
    }
    if(sum==n*n) cout<<4<<endl;
    if(sum!=n*n)
 {
  sum=0;
  for(char h=1;h<=n;h++)
  for(char k=n;k>=1;k--)
  {
  if(b[h][n+1-k]==a[k][h]) sum++;       //顺时针旋转          |
  if(b[h][n+1-k]==a[n+1-k][n+1-h]) sum2++;        //逆时针旋转 | 并记录相同数
  if(b[h][k]==a[n+1-h][n+1-k]) sum3++;        //关于中心对称   |
  }
  if(sum==n*n) cout<<1<<endl;
  else
  {
  if(sum2==n*n) cout<<2<<endl;
  else
  {
  if(sum3==n*n) cout<<3<<endl;    //sum满足那种方式,就输出相应的值
  else cout<<5<<endl;    //无满足,则输出5
 }
}
 }
 return 0;
}


wrong

#include<bits/stdc++.h>
using namespace std;
int main()
{
 char a[11][11],b[11][11],c[11][11];
 int sum=0,n;
 cin>>n;
 for(char i=1;i<=n;i++)
 for(char j=1;j<=n;j++)
 cin>>a[i][j];
 for(char i=1;i<=n;i++)
 for(char j=1;j<=n;j++)
 {
 cin>>b[i][j];
 if(a[i][j]==b[i][j]) sum++;
    }
 if(sum!=0) cout<<4<<endl;
 if(sum==0)
 {
 for(char h=1;h<=n;h++)
 for(char k=n;k>=1;k--)
 {
   c[k][h]=a[h][k];
   if(b[k][h]==c[k][h]) sum++;
    }
    if(sum!=0) cout<<1<<endl;
    if(sum==0)
    {
     for(char h=1;h<=n;h++)
       for(char k=n;k>=1;k--)
       {
        c[h][k]=a[k][h];
        if(c[h][k]==b[h][k]) sum++;
          }
          if(sum!=0) cout<<2<<endl;
          if(sum==0)
          {
           for(char h=1;h<=n;h++)
           for(char k=1;k<=n;k++)
           {
            c[n+1-h][n+1-k]=a[h][k];
            if(c[n+1-h][n+1-k]==b[n+1-h][n+1-k]) sum++;
   }
   if(sum!=0) cout<<3<<endl;
   if(sum==0) cout<<5<<endl;
    }   
 }
 }




原创粉丝点击