题目描述
请实现如下接口
public static int findNumberOf1( int num)
{
/* 请实现 */
return 0;
} 譬如:输入5 ,5的二进制为101,输出2
涉及知识点:
注意多组输入输出!!!!!!
输入描述:
输入一个整数
输出描述:
计算整数二进制中1的个数
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s;
while ((s = br.readLine()) != null) {
int a = Integer.parseInt(s);// 输入的值
System.out.println(findNumberof1(a));
}
}
private static int findNumberof1(int a) {
// TODO Auto-generated method stub
int temp = 0;
// 开始把十进制改成二进制
while (true) {
if (a / 2 != 0 && a % 2 == 1) {// 表示二进制中多了一个1 所以1的数量加一
temp++;
a = a / 2;// 更新a的值
} else if (a / 2 != 0 && a % 2 == 0) {
a = a / 2;// 更新a的值
} else if (a / 2 == 0) {
temp++;
break;
}
}
return temp;// 返回二进制中的1的数量
}
}