C♯の勉強

C♯4.0 で TopCoder の過去問を解きます。

TopCoder SRM 587: JumpFurther

問題文

一歩進む、二歩進む、と続けていって、もし障害物にあたったら「一歩進む」をなかったことにする。
その直後のターンでは少なくとも「二歩以上進む」ことになるので必ず障害物は飛び越される。

public class JumpFurther {
    public int furthest(int N, int badStep) {
        int step = 0;
        for (int i = 1; i <= N; i++) {
            step += i;
            if (step == badStep) step--;
        }
        return step;
    }
}