首页 > 试题广场 >

【编程题】编写一个函数,求一个数的二进制表示中的1位的个数,

[问答题]
【编程题】编写一个函数,求一个数的二进制表示中的1位的个数,例如9的二进制表示为10011位的个数为2

#include<iostream>
usingnamespacestd;
intmain()
{
intn,count=0;
cin>>n;
while(n!=0)
{
 if(n%2)
 {
  count++;
 }
 n=n/2;
}
cout<<count;
return0;
}

发表于 2018-08-29 10:26:23 回复(1)
 public static void main(String[] args) {
     Scanner in = new Scanner(System.in);
     while (in.hasNextInt()) {// 注意,如果输入是多个测试用例,请通过while循环处理多个测试用例
         int a = in.nextInt();
         String s = Integer.toBinaryString(a) ;
         String str = "1";
         int num = Integer.parseInt(s);
         //System.out.println(num);
         change(s, str); 
         
         
       //System.out.println(num);
     }
发表于 2019-04-07 12:54:18 回复(0)
def oneInBin(num):
    """
    先把数字转化为二进制数;再转化为字符串;在count里面的“1”字符
    :param num:
    :return:
    """
    return str(bin(num)).count("1")

发表于 2022-06-22 10:54:38 回复(0)
public static void main(String[] args){
    Scanner scanner=new Scanner(System.in);
    int num = scanner.nextInt();
    String num2=String.valueOf(Integer.toBinaryString(num));
    int j=0;
    for(int i=0;i<num2.length();i++){
        if(num2.charAt(i)=='1')
            j++;
    }
    System.out.println(j);
}

发表于 2021-06-20 14:20:42 回复(0)
#include<iostream>
using namespace std;
int main()
{
  int n;
while(cin>>n)
{
    int cnt=0;
    while(n!=0)
   {
      n=n&(n-1);
     cnt++;
    }
     cout<<cnt<<endl;
}
return 0;
   
}
发表于 2020-07-22 20:08:02 回复(0)
 def bin2(num):
    l = []
    m = 0
    while True:
        num, remainder = divmod(num, 2)
        l.append(int(remainder))
        if num == 0:
            for i in l:
                if i == 1:
                    m += 1
            return m

print(bin2(15)) 

发表于 2019-03-23 20:49:00 回复(0)
int numOf1(int a)
{     int total_1 = 0;   
  while (a != 0){     
    int temp = a & 1;     
    if (temp == 1)       
      total_1++;      
   a = a >> 1;   
  }  
   return total_1;
}



发表于 2018-08-02 11:09:07 回复(0)