今天題目比較簡單,直接分析。小藍想知道2024這個數字中有幾個1,計算機組成學習好的同學肯定可以直接長除法或者瞪眼法得出答案:
2024=11111101000(B)也就是說2024中有一共有六個1
接下來用代碼實現 ,我們也可以看出其中的有效數字為2,2,4;判斷出2和4的二進制包含幾個1就可以,先將數字轉換為二進制,然后判斷2024二進制包含幾位1,輸出即可。
代碼實現👇
System.out.println(Integer.bitCount(2024));//瞪眼法
bitCount(int i)?函數,實現統計一個數的二進制位有多少個 1
public static void main(String[] args) {Scanner scanner =new Scanner(System.in);int i=2024;String binaryString = Integer.toBinaryString(i);int count=0;for (int j = 0; j < binaryString.length(); j++) {if (binaryString.charAt(j)=='1') {count++;}}System.out.println(count);scanner.close();}
轉換法
public static void main(String[] args) {Scanner scanner =new Scanner(System.in);int i=2024;int count=0;while (i>0) {if (i%2!=0) {//二進制就是2的多少次方count++;}i/=2;}System.out.println(count);}
自己寫方法
public static void main(String[] args) {Scanner scanner =new Scanner(System.in);int i=2024;int count=0;while (i>0) {count+=i%2;//與長除法類似,利用長除法的原理i/=2;}System.out.println(count);}