Paiza問題集
Pythonで回答
条件分岐/積の最小化
Step01 けた数の測定
"""
けた数の測定
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step1
問題
整数Nが与えられます
Nのけた数を出力してください
"""
print(len(str(input())))
Step02 足したり引いたり
"""
足したり引いたり
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step2
問題
整数N,A,B(-99≦N,A,B≦100)があります
以下の2つの操作をそれぞれ1回ずつおこなったとき、Nを0にできる場合はYESを、できない場合はNOを出力してください
1.NにAを足す、またはNからAを引く
2.NにBを足す、またはNからBを引く
"""
N, A, B = map(int, input().split())
if N + A + B == 0:
print("YES")
elif N + A - B == 0:
print("YES")
elif N - A + B == 0:
print("YES")
elif N - A - B == 0:
print("YES")
else:
print("NO")
Step03 同値判定
"""
同値判定
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step3
問題
整数N,2つの数列A,Bが与えられます
1≦i≦Nを満たす整数iのうち、A_iとB_iが等しくなるようなiの個数を求めてください
"""
N = int(input())
A = input().split()
B = input().split()
count = 0
for i in range(N):
if A[i] == B[i]:
count += 1
print(count)
Step04 終了判定
"""
終了判定
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step4
"""
N = int(input())
A = list(map(int, input().split()))
total = 0
for i in range(N):
if A[i] % 2 != 0:
break
total += A[i]
print(total)
Step05 終了判定2
"""
終了判定2
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step5
問題
2以上の整数N,Kが与えられます
「Nを2倍した数でNを更新する」という操作を何度か繰り返すことを考えます
このとき, ちょうどある回数MでNの値はK以上になります
この時点で操作の繰り返しを終了することにします
"""
N, K = map(int, input().split())
M = 0
while not N < K:
N *= 2
M += 1
print(M)
Step06 池の周回
"""
池の周回
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step6
"""
N, K ,T = map(int, input().split())
print("YES" if K*T % N == 0 else "NO")
Step07 崖に落ちるか判定
"""
崖に落ちるか判定
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step7
"""
N, K, T = map(int, (input().split()))
print("YES" if K*N<=T+0.1 else "NO")
Step08 タイルの敷き詰め
"""
タイルの敷き詰め
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step8
"""
H, W = map(int, (input().split()))
print("YES" if H%2==0 and W%2==0 and (H!=0 and W!=0) else "NO")
Final問題 積の最小化
"""
積の最小化
https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_boss
問題
-1,000≦A≦B≦1,000を満たす2つの整数A,Bが与えられます
A以上B以下である2つの整数X,Yを適当に選んだとき、X*Yの取り得る値の最小値を出力してください
"""
A, B = map(int, input().split())
# AからBの間に0が含まれる
if A <= 0 and B >= 0:
print(A * B)
# AとBが両方とも正の数
elif A > 0:
print(A * A)
# AとBが両方とも負の数
else:
print(B * B)