第六題 三態邏輯運算

問題描述
       天狼星人(SIRIANS,類人族外星人)小鄞最近在學他們第Ⅻ(duodecim)年級的「數位邏輯」課程,在天狼星的「數位邏輯」課程裡直接學的是三態邏輯(H、M、L),基本邏輯運算子也是 AND、OR、NOT 三種,其運作如下表格(各表格左上方為邏輯運算子,表格上方橫向為第 1 個輸入的邏輯狀態,表格左側為第 2 個輸入的邏輯狀態,各相對位置為該邏輯運算的結果):

AND H M L
H H H L
M H M L
L L L L
OR H M L
H H H H
M H M L
L H L L
NOT H M L
  L M H

       此外,天狼星人的「數位邏輯」課程裡還有 3 種擴充的運算叫做 XOR、XAND 和 FUZZY,其運作如下表格:

XOR H M L
H L M H
M M L M
L H M L
XAND H M L
H H L L
M L H L
L L L H
FUZZY H M L
H H M M
M M M M
L M M L

       天狼星人小鄞的專題正研究地球人的十進位數字和天狼星邏輯運算的界接。天狼星人在某有限體(Finite Field)運作系統中有一模數 (Modulo) 子系統;其將地球人的十進位數字當作輸入,經過除以 3 後的餘數分別配予天狼星人的邏輯;亦即餘數是 0 表示 H、餘數是 1 表示M、餘數是 2 表示 L。請撰寫一個程式,讀入 2 個地球人的十進位數字,經過除以 3 後的餘數當作五種邏輯運算 AND、OR、XOR、XAND、FUZZY 的 2 個輸入,並依序輸出其結果。

輸入說明
       輸入 2 個十進位正整數以空格間隔之,例如,「26 102」;若輸入待運算的數值不符合規定,則輸出「輸入數值錯誤」的文字訊息。

輸出說明
       輸出為 AND、OR、XOR、XAND、FUZZY 運算依序的結果(共 5 個英文字母)。例如,當輸入 2 個十進位正整數為「26 102」時,其對應的輸出為:「LHHLM」。

範例
輸入 輸出
26 102 LHHLM
-21 921.1 輸入數值錯誤
1000 99 HHMLM