CodeWar----求正整数二进制表示中1的个数

Posted 愉快的白萝卜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeWar----求正整数二进制表示中1的个数相关的知识,希望对你有一定的参考价值。

Codewars


    Write a function that takes an integer as input, and returns the number of bits that are equal to one in the binary representation of that number. You can guarantee that input is non-negative.
    Example: The binary representation of 1234 is 10011010010, so the function should return 5 in this case
编写一个以整数作为输入的函数,并返回该数字的二进制表示中等于1的位数。您可以保证输入是非负的。

示例:1234is 的二进制表示10011010010,因此在这种情况下函数应该返回5

我的代码
public class BitCounting {
    public static int countBits(int n){
        // Show me the code!
        int count = 0;
        while(n != 0){
            if((n & 1) == 1){
                count++;
            }
            n = n>>>1;
        }
        return count;
  }
}

最佳代码
public class BitCounting {
     public static int countBits(int n){
       return Integer.bitCount(n);
     }  
   }

总结
对Java中已实现的功能及其不熟悉

以上是关于CodeWar----求正整数二进制表示中1的个数的主要内容,如果未能解决你的问题,请参考以下文章

[HNOI2001] 求正整数

求正整数2和n之间的完全数

C语言新手 给定一段连续的正整数,请判断其中素数的个数

编程:求正整数内与7无关(数字中不含7,不是7的倍数)的所有数之和

1150 求正整数2和n之间的完全数

二进制表示中1的个数