《剑指Offer》15. 二进制中 1 的个数

题目链接

牛客网

题目描述

输入一个整数,输出该数二进制表示中 1 的个数。

解题思路

n & (n-1)可以除掉n的最后的一个1,变为0

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

相关推荐

代码飞升_不回私信人...:别这样贬低自己,降低预期,放平心态,跟昨天的自己比。做好自己,反而会效率更高心态更好,加油兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务