方法一:使用二进制基本计算,统计余数为0即可
import java.util.*;
public class Main{
public static void main(String [] args){
getNumber();
}
public static void getNumber(){
Scanner scan = new Scanner(System.in);
int input = scan.nextInt();
int remainder = 0;
int flag = 0;
while(input>0){
remainder = input%2;
if(1 == remainder){
flag++;
}
input = input/2;
}
System.out.print(flag);
}
}方法二:直接使用位移操作,除以二即将所有位向右移动一位,高位补0
import java.util.*;
public class Main{
public static void main(String [] args){
getNumber();
}
public static void getNumber(){
Scanner scan = new Scanner(System.in);
int input = scan.nextInt();
int remainder = 0;
int flag = 0;
while(input>0){
remainder = input%2;
if(1 == remainder){
flag++;
}
input = input>>1;
}
System.out.print(flag);
}
}
京公网安备 11010502036488号