1. 程式人生 > 其它 >演算法很美 二進位制中1的個數

演算法很美 二進位制中1的個數

技術標籤:JAVAjava演算法很美藍橋杯

大家關注微信公眾號 罡罡同學 回覆藍橋杯

可免費獲得歷年真題和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); } }

謝謝大家的支援,您的一鍵三連是 罡罡同學前進的最大動力!

一鍵三連 一鍵三連 一鍵三連 一鍵三連 一鍵三連 一鍵三連