剑指offer之二进制中1的个数

二进制中1的个数

https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&&tqId=11164&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目

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

思路

还记得第一次碰到这种题的时候我真的是笨了吧唧的老老实实的转成二进制去数的

代码

class Solution {
public:
     int  NumberOf1(int n) {
         int count = 0;
         while (n)
         {
             n = (n - 1)&n;
             count ++;
         }
         return count;
     }
};
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务