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;
}

 

posted @ 2017-09-25 14:59  失忆的旅行者  阅读(89)  评论(0编辑  收藏  举报