本题目链接查找输入整数二进制中1的个数
本题大体思路:
首先,我们要求得传入的整数的二进制形式,求法为:一直对该书除以2,然后对2求余,把求余结果存入到string中,直到num/2==0终止,终止后用string.charAt(i)遍历,并且与‘1’进行比较,相等则计数器加1,最后看传入的数为正数,负数还是0,即可。
import java.util.Scanner;
public class Main{
public static int findNumberOf1(int num){
int old=num;
num=Math.abs(num);
String string="";
while(num/2!=0){
int temp1=num/2;
int temp2=num%2;
string=string+temp2;
num=temp1;
}
int sum=0;
for(int i=0;i<string.length();i++){
if (string.charAt(i)=='1') {
sum++;
}
}
if (old>0) {
return sum+1;
}else if (old==0) {
return 0;
}else {
return sum+2;
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
int n=scanner.nextInt();
System.out.println(findNumberOf1(n));
}
}
}