問題描述 :
一塊n x n(1=
寫乙個程式來找出將原始圖案按照以下列轉換方法轉換成新圖案的最小方式:
#1:轉90度:圖案按順時針轉90度。
#2:轉180度:圖案按順時針轉180度。
#3:轉270度:圖案按順時針轉270度。
#4:反射:圖案在水平方向翻轉(形成原圖案的映象)。
#5:組合:圖案在水平方向翻轉,然後按照#1-#3之一轉換。
#6:不改變:原圖案不改變。
#7:無效轉換:無法用以上方法得到新圖案。
如果有多種可用的轉換方法,請選擇序號最小的那個。
比如:轉換前:
@-@---
@@-轉換後:
@-@@--
--@這種轉換採取#1(按順時針轉90度)即可。
注意:圖案中的字元「@」和「-」在轉90度後,還是「@」和「-」。不要認為「-」轉90度後變成「|」。
輸入說明 :
第一行: 單獨的乙個整數n。
第二行到第n+1行: n行,每行n個字元(不是'@'就是'-');這是轉換前的正方形。
第n+2行到第2*n+1行: n行,每行n個字元(不是'@'就是'-');這是轉換後的正方形。
輸出說明 :
單獨的一行包括1到7之間的乙個數字(在上文已描述)表明需要將轉換前的正方形變為轉換後的正方形的轉換方法。
輸入範例 :
3--@
--@---
@@----
---輸出範例 :3
思想:按題目要求寫了,每種情況都寫乙個judge,然後返回最先符合的情況即可。
#include #includechar origin[10][10
];char change[10][10
];int judge1(int num)}}
return
count;
}int judge2(int num)}}
return
count;
}int judge3(int num)}}
return
count;
}int judge4(int num)}}
return
count;
}int judge5(int num)
}for(i=0;i)}}
if(count==num*num)
count = 0
;
for(i=0;i)}}
if(count==num*num)
count = 0
;
for(i=0;i)}}
if(count==num*num)
return0;
}int judge6(int num)}}
return
count;
}int
main()
}for(l=0;l)
}if(judge1(num)==num*num)
else
if(judge2(num)==num*num)
else
if(judge3(num)==num*num)
else
if(judge4(num)==num*num)
else
if(judge5(num)==num*num)
else
if(judge6(num)==num*num)
else
}
7 6 1 2 2 方塊轉換 70分
一塊 n x n 1 n 10 正方形的黑白瓦片的圖案要被轉換成新的正方形圖案.寫乙個程式來找出將原始圖案按照以下列轉換方法轉換成新圖案的小方式 1 轉 90 度 圖案按順時針轉 90 度.2 轉 180 度 圖案按順時針轉 180 度.3 轉 270 度 圖案按順時針轉 270 度.4 反射 圖案...
luogu P1205 方塊轉換
一塊n x n 1 n 10 正方形的黑白瓦片的圖案要被轉換成新的正方形圖案。寫乙個程式來找出將原始圖案按照以下列轉換方法轉換成新圖案的最小方式 1 轉90度 圖案按順時針轉90度。2 轉180度 圖案按順時針轉180度。3 轉270度 圖案按順時針轉270度。4 反射 圖案在水平方向翻轉 以 鉛垂...
USACO 1 2 2 方塊轉換
一塊n x n 1 n 10 正方形的黑白瓦片的圖案要被轉換成新的正方形圖案。寫乙個程式來找出將原始圖案按照以下列轉換方法轉換成新圖案的最小方式 1 轉90度 圖案按順時針轉90度。2 轉180度 圖案按順時針轉180度。3 轉270度 圖案按順時針轉270度。4 反射 圖案在水平方向翻轉 以 鉛垂...