AtCoder Beginner Contest

【pythonでABC178を解説】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()

-AtCoder Beginner Contest
-,