問題概要
問題ページ
-
A - Bitwise Exclusive Or
問題ページへ移動する
問題文
\(0\) 以上 \(255\) 以下の整数 \(A,B\) が与えられます。 \(A \text{ xor }C=B\) となる \(0\) 以上の整数 \(C\) を求めてください。
なお、そのような \(C\) はただ \(1\) つ存在し、\(0\) 以上 \(255\) 以下であることが証明されます。
\(\text{ xor }\) とは
整数 \(a, b\) のビットごとの排他的論理和 \(a \text{ xor } b\) は、以下のように定義されます。
- \(a \text{ xor } b\) を二進表記した際の \(2^k\) (\(k \geq 0\)) の位の数は、\(a, b\) を二進表記した際の \(2^k\) の位の数のうち一方のみが \(1\) であれば \(1\)、そうでなければ \(0\) である。
例えば、\(3 \text{ xor } 5 = 6\) となります (二進表記すると: \(011 \text{ xor } 101 = 110\))。
制約
- \(0\leq A,B \leq 255\)
- 入力に含まれる値は全て整数である
問題の考察
ACコード
import sys def solve(): input = sys.stdin.readline mod = 10 ** 9 + 7 a, b = list(map(int, input().rstrip('\n').split())) for i in range(256): if a ^ i == b: print(i) exit() if __name__ == '__main__': solve()