二进制拆分:只要有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; }
二进制拆分:只要有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; }