这不是小学奥数么?把它拆成2的整数次幂就好了。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int n;
int LOG(int x)
{
int ans=0;
while (x)
{
x>>=1;
ans++;
}
return ans;
}
int main()
{
scanf("%d",&n);
printf("%d\n",LOG(n));
return 0;
}