题目:

二进制中有多少个1

49% 通过 计算在一个 32 位的整数的二进制表式中有多少个 1.

样例

给定 32 (100000),返回 1

给定 5 (101),返回 2

给定 1023 (111111111),返回 9

解题:

Java程序:

public class Solution {
    /**
     * @param num: an integer
     * @return: an integer, the number of ones in num
     */
    public int countOnes(int num) {
        // write your code here
        return countOnes1(num); //总耗时: 1201 ms
        // return countOnes2(num); //总耗时: 1185 ms
        // return countOnes3(num); // 总耗时: 1215 ms
    }
    public int countOnes1(int num){
        int count = 0;
        while(num!=0){
            if(num%2==1)
                count++;
            num=num/2;
        }
        return count;
    }
    public int countOnes2(int num){
        int count = 0;
        while(num!=0){
            count +=num&0x01;
            num = num>>1;
        }
        return count;
    }
    public int countOnes3(int num){
        int count = 0;
        while(num!=0){
            num = num & (num-1);
            count++;
        }
        return count;
    }
};
View Code

相关文章:

  • 2022-01-18
  • 2022-02-17
  • 2021-11-05
  • 2021-07-31
  • 2022-02-01
  • 2021-07-23
  • 2021-12-06
  • 2021-10-19
猜你喜欢
  • 2021-09-30
  • 2021-11-20
  • 2021-12-16
  • 2022-12-23
  • 2021-11-08
相关资源
相似解决方案