思路:如果有一个最大的整数 i,满足 2^(i-1) <= n ,则i为所求。
代码:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <cstring>
#include <map>
using namespace std;
int n;
int main() {
while(~scanf("%d",&n)){
for(int i=30;i>=-1;i--){
if((1<<i)<=n){
printf("%d\n",i+1);
break;
}
}
}
return 0;
}