AtCoder ABC 206 B – Savings Python解説

スポンサーリンク

Savings

シカのAtCoDeerくんは、空の貯金箱を持っています。
AtCoDeerくんは、その貯金箱に、1 日目の朝に 1 円、2 日目の朝に 2 円 … というように、i 日目の朝に i 円を貯金箱に入れます。
また、AtCoDeerくんは、毎日夜に貯金箱にいくら入っているかを確認します。
AtCoDeerくんが貯金箱に N 円以上入っていることを初めて確認するのは、何日目の夜でしょうか?

AtCoder Beginner Contest「Savings」

今回の問題は入力から与えられる最大値が10 ^ 9なので計算時間が気になりますが、結論から言って、for文で1日目から1円ずつ足していっても十分間に合います。

ですので、実装としては単純に金額を足していき、N円以上になった日にちを出力していきます。

n = int(input())

cnt = 0

for i in range(n+1):
    cnt += i
    if cnt >= n:
        print(i)
        break

for文を使い貯金箱にN円以上入る日にちを求めます。for文を回す範囲はN + 1にしています。cntに貯金額を入れ、N円以上になっているか条件文で調べます。N円以上になっていたら、日にちを出力して完了です。