题目描述
请实现如下接口
public static int findNumberOf1(intnum)
{
/* 请实现 */
return 0;
}
譬如:输入5 ,5的二进制为101,输出2
输入描述:
输入一个整数
输出描述:
计算整数二进制中1的个数
输入例子:
5
输出例子:
2
代码
import java.util.Scanner;
public class Numof1Binary {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
int n=sc.nextInt();
System.out.println(numof1Binary(n));
}
sc.close();
}
public static int numof1Binary(int n)
{
int count=0;
while(n!=0)
{
/*count+=n&1;
n>>=1;*/
n&=(n-1);
count++;
}
return count;
}
public static int numof1Binary(int n)
{
int count=0;
char chs[]=Integer.toBinaryString(n).toCharArray();
for(int i=0;i<chs.length;i++)
{
if(chs[i]=='1')
count++;
}
return count;
}
}