はまやんはまやんはまやん

hamayanhamayan's blog

Break Number [AtCoder Beginner Contest 068 B]

http://abc068.contest.atcoder.jp/tasks/abc068_b

解法

http://abc068.contest.atcoder.jp/submissions/1470650

答えの候補となる数の個数は最大で100個なので、これを全探索する方向で考える。
2で最大何回割れるかは愚直に割っていって、2で割れなくなったら終わりをすればよい。

int N;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    int macnt = -1, ans = -1;
    rep(x, 1, N + 1) {
        int cnt = 0;
        int y = x;
        while (y % 2 == 0) y /= 2, cnt++;
        if (macnt < cnt) macnt = cnt, ans = x;
    }
 
    cout << ans << endl;
}