本文主要是介绍1.2.2 Transformations,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
刚开始一看题目, 看起来很难的样子, 于是就先放过了;等我把其他题做完后, 我仔细看了下题目, 才发现, 这个题目原来这嘛水 ……
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
int n;
void Spin( char map[][11], char str[][11], int num)//旋转90度
{int i, j;for(i=0; i<n; i++)for(j=0; j<n; j++){str[j][n-1-i]=map[i][j]; }
}
void Turn(char map[][11], char str[][11])//水平翻转
{int i, j;for(i=0; i<n; i++)for(j=0; j<n; j++){str[i][n-1-j]=map[i][j]; }
}
bool Judge(char aim[][11], char str[][11])//判断是否相等, 相等返回0,否则返回1
{int i, j;for(i=0; i<n; i++)for(j=0; j<n; j++){if( aim[i][j]!=str[i][j])return 1;}return 0;
}int main()
{ifstream fin("transform.in"); ofstream fout("transform.out"); char map[11][11], aim[11][11], str1[11][11], str2[11][11], str3[11][11], str4[11][11];int flag=1, i, ans;fin>>n;for(i=0; i<n; i++)// cin>>map[i];fin>>map[i];for(i=0; i<n; i++)//cin>>aim[i];fin>>aim[i];Spin(map, str1);//旋转90度flag=Judge(aim, str1);if( flag==0 ) ans=1; else{Spin( str1, str2);//再旋转90度flag=Judge(aim, str2);if( flag==0 ) ans=2;else{Spin(str2, str3);//再旋转90度flag=Judge(aim, str3);if( flag==0 ) ans=3; else{Turn( map, str4 );//水平翻转flag=Judge(aim, str4);if( flag==0 ) ans=4; else{ Spin(str4, str1);//旋转90度flag=Judge(aim, str1);if( flag==0 ) ans=5; else{Spin(str1, str2);//再旋转90度flag=Judge(aim, str2);if( flag==0 ) ans=5; else{Spin(str2, str3);//再旋转90度flag=Judge(aim, str3);if( flag==0 ) ans=5; else{if( Judge(aim, map)==0 )ans=6;elseans=7;}}}}}}} //cout<<ans<<endl;fout<<ans<<endl;
}
这篇关于1.2.2 Transformations的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!