统计二进制树1的数目

来源:互联网 发布:python tk 显示图片 编辑:程序博客网 时间:2024/04/25 20:33

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

思路:由于n-1和n相与的结果是将n的最右边一个1变成0,因此题目可以&进行求解。

n:1000011 ;   n-1: 1000010相与的结果为1000010,相当于将n最后一个1去掉了,不断重复即可。

class Solution {

public:
     int  NumberOf1(int n) {
         int res=0;
         while(n!=0){
             n=n&(n-1);
             res++;
         }
         return res;
     }
};
2 0
原创粉丝点击