將十進制整數轉成二進制後所有的1加總
Example:
十進制:1234
二進制:10011010010
Bit Counting:5
解題想法:
使用迴圈當n%2!=0則+1
又不知迴圈執行次數故採while
public class BitCounting {
public static int countBits(int n){
// Show me the code!
int result=0;
while(n>0){
if(n%2==0){
n=n/2;
}else{
result+=1;
n=n/2;
}
}
return result;
}
}
特別的寫法,利用Java的Integer.bitCount()方法
public class BitCounting {
public static int countBits(int n){
return Integer.bitCount(n);
}
}