ABC 068 B - Break Number 全探索の考え方。発想
全探索の考えかたが重要。考察問題。
整数操作も大事。
6 -> 1回 (6>3)
8 -> 3回 (8 > 4 > 2 > 1)
これらは、1からNまででループを回す考え方で解いてはいけない。
1から2倍していって、最大値がN以下の整数が答えである。
コード
#include <iostream> #include <string> #include <algorithm> #include <vector> #include <queue> using namespace std; const int INF = 1e9; int main() { int N; cin >> N; int num = 1; while (1) { if (num * 2 > N) break; num *= 2; } cout << num; }