AND+OR

 

3 つの整数X, Y, Zが与えられます。「Xが 10 以上」かつ「Yが 10 以上」の場合はYESを、そうではない場合はNOを出力してください。
ただし、「Zが 10 以上の」場合はXとYの値にかかわらず、必ずYESを出力してください。

 

#入力

X Y Z

 

 

#出力

YESまたはNOを出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。

YES


または

NO

 

 

#コード

x,y,z = [int(x) for x in input().split()]
if (x >= 10 and y >= 10) or z >= 10:
    print("YES")
else:
    print("NO")

 

 

#参考

解答例 1

x, y, z = [int(x) for x in input().split()]

if z >= 10 or x >= 10 and y >= 10:
    print("YES")
else:
    print("NO")

  • 問題文の条件は「z が 10 以上 または x が 10 以上 かつ y が 10 以上」 と言い換えることができるので、上記のようなコードを書くことができます。
  • or 演算よりも and 演算が優先されるという特徴に注意して下さい。

解答例 2

x, y, z = [int(x) for x in input().split()]

if z >= 10:
    print("YES")
elif x >= 10 and y >= 10:
    print("YES")
else:
    print("NO")

  • or 演算子を使わない方法です。
  • z が 10 以上のときは、xy の値にかかわらず "YES" を出力するので、まず「z が 10 以上か」の条件に通します。
  • 上の条件を満たさなかったときは xy についての条件に通します。
  • 上の条件全てを満たさなかった場合、"NO" を出力します。