就是(2^i)划分,直接算就行了。
#include <cstdio> using namespace std; int n, m, ans; int main() { scanf("%d", &n) ans=0; m=1; while (n>0) { ans++; n-=m; m<<=1; } printf("%d ", ans); }