偶奇の判定
#お題
N 個の整数 a_1, a_2, ..., a_N が与えられます。
この N 個の整数について、a_1 から順に 奇数か偶数か判定し、奇数なら odd
、偶数なら even
を改行区切りで出力してください。
入力例
4
1 2 3 4
出力例
odd
even
odd
even
#入力
N
a_1 a_2 ... a_N
・ 1 行目に整数 N が与えられます。
・ 2 行目に N 個の整数 a_1, a_2, ..., a_N が与えられます。
#出力
N 個の整数について、a_1 から順に 奇数か偶数か判定し、奇数なら odd
、偶数なら even
を改行区切りで出力してください。
#コード
a = int(input())
b = [int(x) for x in input().split()]
#print(a)
for i in b:
if i % 2 == 0:
print("even")
else:
print("odd")
#参考
N = int(input())
a = list(map(int, input().split()))
for i in range(N):
if a[i] % 2 == 0:
print("even")
elif a[i] % 2 == 1:
print("odd")
- ループ処理内で
a[i] % 2 == 0
を確かめることにより、各要素に対して偶数か奇数か判別することができます。
偶奇の判定
#お題
N 個の整数 a_1, a_2, ..., a_N が与えられます。
この N 個の整数について、a_1 から順に 奇数か偶数か判定し、奇数なら odd
、偶数なら even
を改行区切りで出力してください。
入力例
4
1 2 3 4
出力例
odd
even
odd
even
#入力
N
a_1 a_2 ... a_N
・ 1 行目に整数 N が与えられます。
・ 2 行目に N 個の整数 a_1, a_2, ..., a_N が与えられます。
#出力
N 個の整数について、a_1 から順に 奇数か偶数か判定し、奇数なら odd
、偶数なら even
を改行区切りで出力してください。
#コード
a = int(input())
b = [int(x) for x in input().split()]
#print(a)
for i in b:
if i % 2 == 0:
print("even")
else:
print("odd")
#参考
N = int(input())
a = list(map(int, input().split()))
for i in range(N):
if a[i] % 2 == 0:
print("even")
elif a[i] % 2 == 1:
print("odd")
- ループ処理内で
a[i] % 2 == 0
を確かめることにより、各要素に対して偶数か奇数か判別することができます。
割り切れる数だけ出力
#お題
N 個の整数 a_1, a_2, ..., a_N が与えられます。
この N 個の整数のうち、a_1 から順に 3 で割り切れるか判定し、割り切れる場合のみ改行区切りで出力してください。
また、N 個の整数には 3 で割り切れる数が少なくとも 1 つ含まれています。
#入力
N
a_1 a_2 ... a_N
・ 1 行目に整数 N が与えられます。
・ 2 行目に N 個の整数 a_1, a_2, ..., a_N が与えられます。
#出力
N 個の整数のうち、a_1 から順に 3 で割り切れるか判定し、割り切れる場合のみ改行区切りで出力してください。
#コード
a = int(input())
b = [int(x) for x in input().split()]
#print(a)
for i in b:
if i % 3 == 0:
print(i)
#参考
N = int(input())
a = list(map(int, input().split()))
for i in range(N):
if a[i] % 3 == 0:
print(a[i])
- 3 で割り切れる数の場合、3 で割った余りは必ず 0 になります。
- なので、
a[i] % 3 == 0
とすることで、それぞれの整数に対して 3 で割り切れるかどうかを判別することができます。
奇数だけ出力
#お題
N 個の整数 a_1, a_2, ..., a_N が与えられます。
この N 個の整数のうち、a_1 から順に奇数か偶数か判定し、奇数の場合のみ改行区切りで出力してください。
また、N 個の整数には奇数が少なくとも 1 つ含まれています。
#入力
N
a_1 a_2 ... a_N
・ 1 行目に整数 N が与えられます。
・ 2 行目に N 個の整数 a_1, a_2, ..., a_N が与えられます。
#出力
N 個の整数のうち、a_1 から順に奇数か偶数か判定し、奇数の場合のみ改行区切りで出力してください。
#コード
a = int(input())
b = [int(x) for x in input().split()]
#print(a)
for i in b:
if i % 2 == 1:
print(i)
#参考
N = int(input())
a = list(map(int, input().split()))
for i in range(N):
if a[i] % 2 == 1:
print(a[i])
- 奇数の場合、2 で割った余りは必ず 1 になります。
- なので、
a[i] % 2 == 1
とすることで、それぞれの整数に対して奇数かどうかを判別することができます。
未知数個の文字列の受け取り
#お題
複数の文字列が入力されます。文字列の数はわかりません。EOF
が入力されるまで、受け取った文字列を改行区切りで出力してください。
#入力
s_1 s_2 ... EOF
・ 複数の文字列が 1 行で与えられます。
#出力
EOF
が入力されるまで、受け取った数を改行区切りで出力してください。
出力の末尾には改行を入れてください。
s_1
s_2
...
EOF
#コード
a = [x for x in input().split()]
#print(a)
for i in a:
if i == "EOF":
print(i)
break
print(i)
#参考
<別解>
s = list(input().split())
i = 0
while True:
print(s[i])
if s[i] == "EOF":
break
i += 1
- Python3 の場合、リストとして 1 行で受け取り、1 つずつ for 文を用いて出力します。
未知数個の数の受け取り
#お題
長さがわからない数列 a が入力されます。
-1 が入力されるまで、受け取った数を改行区切りで出力してください。
#入力
a_1 a_2 ... -1
・ 数列 a が 1 行で与えられます。
#出力
-1 が入力されるまで、受け取った数を改行区切りで出力してください。
出力の末尾には改行を入れてください。
a_1
a_2
...
-1
#コード
a = [int(x) for x in input().split()]
#print(a)
for i in a:
if i == -1:
print(i)
break
print(i)
#参考
<別解>
a = list(map(int, input().split()))
i = 0
while True:
print(a[i])
if a[i] == -1:
break
i += 1
- Python3 の場合、リストとして 1 行で受け取り、1 つずつ for 文を用いて出力します。
積の最小化
#お題
-1,000 ≦ A ≦ B ≦ 1,000 を満たす 2 つの整数 A, B が与えられます。A 以上 B 以下である 2 つの整数 X, Y を適当に選んだとき、X * Y の取り得る値の最小値を出力してください。なお、X と Y は同じ値でもよいものとします。
たとえば A が 3, B が 5 の場合について考えます。これは X と Y を両方とも 3 にしたときが最小で、 X * Y が 9 となります。
#入力
A B
#出力
答えとなる数値Nを出力してください。末尾に改行を入れ、余計な文字、空行を含んではいけません。
N
#コード
a, b = [int(x) for x in input().split()]
if a <= 0 and b >= 0:
# a から b の間に 0 が含まれる
print(a * b)
elif a > 0:
# a と b が両方とも正の数
print(a * a)
else:
# a と b が両方とも負の数
print(b * b)
#参考
a, b = [int(x) for x in input().split()]
if a <= 0 and b >= 0:
# a から b の間に 0 が含まれる
print(a * b)
elif a > 0:
# a と b が両方とも正の数
print(a * a)
else:
# a と b が両方とも負の数
print(b * b)
- 上記の方針の通りに作成しました。
- 以下で if 文 の構造を見ていきます。
- 【
if a <= 0 and b >= 0:
】- ここは、
a
とb
の範囲が 0 を跨ぐときに実行されます。
- ここは、
- 【
elif a > 0:
】- ここは、
a
とb
が両方とも正の数であるときに実行されます。 a ≦ b
が成立しているので、a > 0
の条件のみで構いません。
- ここは、
- 【
else:
】- ここは、
a
とb
が両方とも負の数であるときに実行されます。 - なぜ、負の数であるときだけ実行されるのか簡単に説明します。
- ここに到達するということは、以下の命題がすべて偽だったということです。
a
が 0 以下 かつb
が 0 以上であるa
とb
がともに正の数である
- つまり、以下のことが言えます。
a
とb
の符号は同じであるa
は正の数ではない
- よって、導き出されるパターンは以下の通りです。
a
とb
はともに負の数である
- ここに到達するということは、以下の命題がすべて偽だったということです。
- ここは、
- 【