编程之美中的一道题,有一个解法想不明白该算法只考虑1的个数代码如下:intCount(BYTEv){intnum=0;while(v){v&=(v-1);num++;}returnnum;}在网上看了一下都只是把算法给出来都没有解释,哪位同学帮忙解释一下,想不明白.多谢
2 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
其实就是简单的位运算啊,给你写个更好理解的#include #include intmain(void){intn,count;while(scanf("%d",&n)!=EOF){count=0;while(n){if(n&1)count++;n>>=1;}printf("%d\n",count);}return0;}
添加回答
举报
0/150
提交
取消