剑指offer(11)二进制中1的个数

public class Solution {
    public int NumberOf1(int n) {
        int count = 0;
        while(n != 0){
            if((n&1)!=0){
                count++;
            }
            n = n>>>1;
        }
        return count;

    }
}

//进行计算的次数只与1的个数有关。每次消掉最右边的1,只有数字为0时(即一个1都没有的时候,n才会变成0),才会跳出循环,即count为所求

public class Solution{
    public int NumberOf1(int n){
        int count = 0;
        while(n != 0){
            n = n & (n - 1);
            count++;
        }
        return count;
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
10-25 22:20
门头沟学院 Java
代码飞升_不回私信人...:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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