問題概要
問題ページ
-
A - Not
問題ページへ移動する
問題文
\(0\) 以上 \(1\) 以下の整数 \(x\) が与えられます。
\(x\) が \(0\) なら \(1\) を、\(1\) なら \(0\) を出力してください。
制約
- \(0 \leq x \leq 1\)
- \(x\) は整数
問題の考察
\(x\) が \(0\) なら \(1\) を、\(1\) なら \(0\) を出力する問題。
if
文で分岐しても解答できるが、ACコードでは排他的論理和を使って解答している。
排他的論理和
- \(0 \oplus 1=1\)
- \(1 \oplus 1=0\)
排他的論理和の性質を利用して、print(x ^ 1)
とすることもできる。
たびすけ
コーディング量も変わらないので
if
文で解答しても問題ありません!ACコード
import sys
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
x = int(input().rstrip('\n'))
print(x ^ 1)
if __name__ == '__main__':
solve()
if文を使ったコード
import sys
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
x = int(input().rstrip('\n'))
print(0 if x == 1 else 1)
if __name__ == '__main__':
solve()