易理解JAVA写法
将二进制数字每次右移>>1 计算余数有1 就有一个1,余数0就没1,不过这种写法的最坏情况就是要遍历完32次
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
int c= 0;
while( a!=0){
int t =a %2 ;
if(t==1){
c++;
}
a = a >>1;
}
System.out.println(c);
}
} 
京公网安备 11010502036488号