ikemonn's blog

技術ネタをちょこちょこと

【TopCoder】SRM 157 DIV2 Lv.1

SRM 157 DIV2 Lv.1

問題文概略

数字の推測ゲーム。 範囲を絞っていき任意の数字を当てる。

書いたコード(解けなかった)

問題文をしっかり読んでおらず、upper boundが上書きされていくのを見逃してタイムアウト。

他の参加者のコードを読んで修正した

public class GuessTheNumber {

    public int noGuesses(int upper, int answer) {

        int bound = 0;
        int count = 0;
        int lowerBound = 1;
        int upperBound = upper;
        while(bound != answer) {
            bound = (lowerBound + upperBound)/2;
            if(bound > answer) {
                upperBound = bound - 1;
            } else if (bound < answer){
                lowerBound = bound + 1;
            }
            count++;
        }
        return count;
    }

}

雑感

Exampleで規則性を見つければいいから、英語は飛ばそうと考えていたらしっぺ返しを食らった。 ちゃんと英語読まねば。。。