【c++變幻的矩陣】偷懶的題解(娛樂向)

只是恰巧過了而已!好孩子不要學(正常做法都是寫四個函數來着。。。。)!!!!

我是直接判斷兩個角是否相等

如果矩陣的所有元素相等,那我的程序估計會死的很慘。。。_(:з」∠)_

問題 J: 變幻的矩陣


題目描述

有一個N x N(N爲奇數,且1 <= N <= 11)的矩陣,矩陣中的元素都是字符。這個矩陣可能會按照如下的幾種變幻法則之一進行變幻(只會變幻一次)。 
現在給出一個原始的矩陣,和一個變幻後的矩陣,請編寫一個程序,來判定原始矩陣是按照哪一種法則變幻爲目標矩陣的。 
1. 按照順時針方向旋轉90度; 
如: 

1 2 3        7 4 1

4 5 6 變幻爲  8 5 2

7 8 9        9 6 3


2. 按照逆時針方向旋轉90度; 
如:

1 2 3        3 6 9

4 5 6 變幻爲  2 5 8

7 8 9        1 4 7


3. 中央元素不變(如下例中的 5),其他元素(如下例中的3)與“以中央元素爲中心的對應元素”(如下例中的7)互換; 
如:

1 2 3       9 8 7

4 5 6 變幻爲 6 5 4

7 8 9       3 2 1


4. 保持原始矩陣,不變幻; 
5. 如果 從原始矩陣 到 目標矩陣 的變幻,不符合任何上述變幻,請輸出5

輸入

第一行:矩陣每行/列元素的個數 N;
第二行到第N+1行:原始矩陣,共N行,每行N個字符;
第N+2行到第2*N+1行:目標矩陣,共N行,每行N個字符;

輸出


只有一行,從原始矩陣 到 目標矩陣 的所採取的 變幻法則的編號。


樣例輸入

5a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
y x w v u
t s r q p
o n m l k
j i h g f
e d c b a

樣例輸出

3

(一把懶骨頭的程序:)

#include<iostream>
using namespace std; 
int main()
{
	int n;
	char ss1[12][12],ss2[12][12];
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)	cin>>ss1[i][j];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)	cin>>ss2[i][j];
	}
	if(ss1[1][1]==ss2[1][n]&&ss2[1][1]==ss1[n][1])	{cout<<"1"<<endl;return 0;}
	else if(ss1[1][1]==ss2[n][1]&&ss2[1][1]==ss1[1][n])	{cout<<"2"<<endl;return 0;}
	else if(ss1[1][1]==ss2[n][n]&&ss2[1][1]==ss1[n][n])	{cout<<"3"<<endl;return 0;}
	else if(ss1[1][1]==ss2[1][1]&&ss2[1][1]==ss1[1][1])	{cout<<"4"<<endl;return 0;}
	else	{cout<<"5"<<endl;return 0;}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章