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; }