AtCoder ABC 099 B – Stone Monument Python解説
Stone Monument
ある村には、高さ 1,(1+2),(1+2+3),…,(1+2+3+…+999)メートルの 999 本の塔が、西から順に 1 メートル間隔で立っています。
長く降り続けた雪がようやく収まったので、まだ雪に完全には埋もれていない、互いに 1 メートル離れたある 2 つの塔の、雪に埋もれていない部分の高さを測ったところ、西側の塔は a メートル、東側の塔は b メートルでした。
積雪量と標高が村内のどこでも等しいと仮定したとき、雪が何メートル積もっているか求めてください。
AtCoder Beginner Contest 「Stone Monument」
ただし、雪は必ず 1 メートル以上積もっているものとします。
今回の問題では、塔の高さは等差数列になっているので、隣り合った2つの塔の高さの差を使って問題を解いていきましょう。
a, b = map(int, input().split())
d = b - a
h = 0
for i in range(1, d + 1):
h += i
print(h - b)
2つの塔aとbの差分をdとします。塔の高さはiずつ増えていくので、for文を使いd+1までループを回すことで、本来のbの塔の高さ(h)を得ることができます。