[APCS] 2017.10-實作題-邏輯運算子(Logic Operators)
問題描述
小蘇最近在學三種邏輯運算子 AND、OR 和 XOR。這三種運算子都是二元運算子, 也就是說在運算時需要兩個運算元,例如 a AND b。對於整數 a 與 b,以下三個二元運算 子的運算結果定義如下列三個表格:
舉例來說:
(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。 (注意輸出時所有英文字母均為大寫字母。)
評分說明
輸入包含若干筆測試資料,每一筆測試資料的執行時間限制(time limit)均為 1 秒,依
正確通過測資筆數給分。其中:
第 1 子題組 80 分,a 和 b 的值只會是 0 或 1。
第 2 子題組 20 分,0 ≤ a, b < 10,000。
Python 解答
for num in range(4):
a, b, c = input().split()
a = int(a)
b = int(b)
c = int(c)
flag = False
if a > 0:
a = 1
if b > 0:
b = 1
if a and b == c:
print("AND")
flag = True
if a or b == c:
print( "OR" )
flag = True
if a ^ b == True:
print("XOR")
flag = True
if not(flag):
print("IMPOSSIBLE")
資料來源:https://apcs.csie.ntnu.edu.tw/wp-content/uploads/2018/12/1061028APCSImplementation.pdf
留言
張貼留言