參考 題型範例 - APCS - 國立臺灣師範大學

題目:邏輯運算子
問題描述
小蘇最近在學三種邏輯運算子 AND、OR和XOR。這三種運算子都是二元運算子,也就是說在運算時需要兩個運算元,例如 a AND b。對於整數 a 與 b,以下三個二元運算子的運算結果定義如下列三個表格:
a AND ba OR ba XOR b
b 為 0b 不為 0
a 為 000
a 不為 001
b 為 0b 不為 0
a 為 001
a 不為 011
b 為 0b 不為 0
a 為 001
a 不為 010
舉例來說: 
(1)	0 AND 0 的結果為 0,0 OR 0 以及 0 XOR 0 的結果也為 0。 
(2)	0 AND 3 的結果為 0,0 OR 3 以及 0 XOR 3 的結果則為 1。 
(3)	4 AND 9 的結果為 1,4 OR 9 的結果也為 1,但 4 XOR 9 的結果為 0。 
 
請撰寫一個程式,讀入 a、b 以及邏輯運算的結果,輸出可能的邏輯運算為何。
輸入格式輸出格式
輸入只有一行,共三個整數值,整數間以一個空白隔開。第一個整數代表 a,第二個整數代表 b,這兩數均為非負的整數。第三個整數代表邏輯運算的結果,只會是 0 或 1。
輸出可能得到指定結果的運算,若有多個,輸出順序為 AND、OR、XOR,每個可能的運算單獨輸出一行,每行結尾皆有換行。若不可能得到指定結果,輸出 IMPOSSIBLE。
(注意輸出時所有英文字母均為大寫字母。)

範例一
輸入正確輸出
0 0 0
AND
OR
XOR

執行結果


範例二
輸入正確輸出
1 1 1
AND
OR

執行結果


範例三
輸入正確輸出
3 0 1
OR
XOR

執行結果


範例四
輸入正確輸出
0 0 1
IMPOSSIBLE

執行結果




using System;
using System.Linq;
class Program
{
    static void Main()
    {
        int[] abc = Console.ReadLine().Split().Select(int.Parse).ToArray();
        // 計算 a AND(OR、XOR) b,並與 c 比較
        bool a = abc[0]!=0, b = abc[1]!=0, c = abc[2]!=0, t = false, f = false;
        Console.Write((t = ((a && b) == c)) ? "AND\n":"");
        Console.Write((t = ((a || b) == c)) ? "OR\n" : "");f = f || t;
        Console.Write((t = ((a ^ b) == c )) ? "XOR\n" : ""); f = f || t;
        Console.Write(f ? "" : "IMPOSSIBLE\n");
    }
}