0 が含まれていないか判定
長さ N の数列Aが与えられます。Aの中に 0 が含まれていない場合はYES
を、 0 が含まれている場合はNO
を出力してください。
#入力
N
A_1
A_2
...
A_N
入力値最終行の末尾に改行が1つ入ります。@
#出力
YES
またはNO
を出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。
YES
または
NO
#コード
a = int(input())
msg = "YES"
for _ in range(a):
if 0 == int(input()):
msg = "NO"
print(msg)
#参考
n = int(input())
a = [int(x) for x in input().split()]
flag = True
for ele in a:
if ele == 0:
flag = False
break
if flag:
print("YES")
else:
print("NO")
- 方針の 1 に沿って作成しました。
- ブール値 (
True
かFalse
) を保持する変数flag
を初期値True
で用意して、0 が含まれていない場合はTrue
を、含んでいる場合はFalse
を格納するようにします。 - for 文で各要素が 0 と等しいかを判定して、等しかったとき
flag
をFalse
にします。 - if 文の条件式の部分はブール値を置くことで条件分岐できるので、
if flag:
のように書きます。
解答例 2
n = int(input())
a = [int(input()) for _ in range(n)]
x = 1
for ele in a:
x *= ele
if x == 0:
print("NO")
else:
print("YES")
- 全ての要素を掛け算した値が 0 であるかどうかを確認して 0 であったら
"NO"
を、そうでないなら"YES"
を出力するようにします。 - また、条件式の部分は前問の解答例 2 のように
if x:
としても解くことができます。この際、x
の値が 0 のとき、False
として処理されるので、注意してください。
解答例 3
n = int(input())
a = [int(input()) for x in range(n)]
if 0 in a:
print("NO")
else:
print("YES")