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;
								else
									ans=7;
							}
						}
					}
				}
				
			}
		}
	}	
	//cout<<ans<<endl;
	fout<<ans<<endl;   
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值