bzoj 1192

二进制拆分:只要有2^0,2^1,2^2……就可以组成小于等于这些数和的全部正整数。

比如有2^0,2^1,2^2就可以组成小于等于7的全部正整数。直接套用就可以了。

#include<cstdio>
int m,i;
int main(){
    scanf("%d",&m);
    for(i=1;(1<<i)<=m+1;i+=1);
    i-=1;
    if((1<<i)!=m+1) printf("%d",i+1); else printf("%d",i);
    return 0;
}
原文地址:https://www.cnblogs.com/AmnesiacVisitor/p/7591872.html