AtCoder ABC 164 B – Battle Python解説
Battle
高橋君と青木君がモンスターを闘わせます。
AtCoder Beginner Contest 「Battle」
高橋君のモンスターは体力が A で攻撃力が B です。 青木君のモンスターは体力が C で攻撃力が D です。
高橋君→青木君→高橋君→青木君→… の順に攻撃を行います。 攻撃とは、相手のモンスターの体力の値を自分のモンスターの攻撃力のぶんだけ減らすことをいいます。 このことをどちらかのモンスターの体力が 0 以下になるまで続けたとき、 先に自分のモンスターの体力が 0 以下になった方の負け、そうでない方の勝ちです。
高橋君が勝つならYes
、負けるならNo
を出力してください。
モンスターの体力が0以下になるまでの攻撃回数で求めていきます。
高橋君が先攻なので、モンスターの体力が0以下になる攻撃回数が同じ場合は高橋君が勝つ点を忘れずに。
import math
a, b, c, d = map(int, input().split())
x = math.ceil(c / b)
y = math.ceil(a / d)
if x <= y:
print("Yes")
else:
print("No")
攻撃回数を求めるには、相手モンスターの体力を自身のモンスターの攻撃力で割ります。
余りが出る場合は小数点を切り上げる必要があるので、上記のコードでは、mathモジュールのmath.ceilを使い小数点を切り上げています。
a, b, c, d = map(int, input().split())
x = -(-c // b)
y = -(-a // d)
if x <= y:
print("Yes")
else:
print("No")
最初のコードと内容的には一緒ですが、こちらはmath.ceilを使わずに小数点を切り上げています。