給定一個長度為n的數列,請你求出數列中每個數的二進制表示中1的個數,
輸入格式
第一行包含整數n,
第二行包含n個整數,表示整個數列,
輸出格式
共一行,包含n個整數,其中的第 i 個數表示數列中的第 i 個數的二進制表示中1的個數,
資料范圍
1≤n≤1000001≤n≤100000,
0≤數列中元素的值≤1090≤數列中元素的值≤109
輸入樣例:
5
1 2 3 4 5
輸出樣例:
1 1 2 1 2
代碼:
import java.util.Scanner; public class Main { static int lowbit(int x){ return x&-x; } public static void main(String[] args) { Scanner scan=new Scanner(System.in); int t=scan.nextInt(); while(t-->0){ int res=0; int n=scan.nextInt(); while(n>0){ n-=lowbit(n); res++; } System.out.print(res+" "); } } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/107653.html
標籤:其他
上一篇:二級制常用技巧
