演算法很美 二進位制中1的個數
阿新 • • 發佈:2021-01-26
大家關注微信公眾號 罡罡同學 回覆藍橋杯
可免費獲得歷年真題和C語言版的真題原始碼
二進位制中1的個數
題目:請實現一個函式,輸入一個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。
方法一:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N= sc.nextInt();
System.out.println(Integer.toString(N, 2));
int count=0;
for(int i=0;i<32;i++){
if((N&(1<<i))==(1<<i)){
count++;
}
}
System.out.println(count);
}
}
推薦方法二:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N=sc.nextInt();
System.out.println(Integer.toString(N, 2));
int count=0;
for(int i=0;i<32;i++){
if(((N>>>i)&1)==1){
count++;
}
}
System.out.println(count);
}
}
也推薦方法三:
import java.util.Scanner;
public class Main{
public static void main (String[] args){
Scanner sc = new Scanner(System.in);
int N=sc.nextInt();
System.out.println(Integer.toString(N, 2));
int count=0;
while(N!=0){//直到N為0時,迴圈結束
N=((N-1)&N);//消掉最低位的1
count++;
}
System.out.println(count);
}
}
謝謝大家的支援,您的一鍵三連是 罡罡同學前進的最大動力!
一鍵三連 一鍵三連 一鍵三連 一鍵三連 一鍵三連 一鍵三連