码迷,mamicode.com
首页 > 其他好文 > 详细

801.二进制中1的个数

时间:2020-10-09 21:02:28      阅读:17      评论:0      收藏:0      [点我收藏+]

标签:++   static   str   输出   lowbit   void   输入格式   int   return   

给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。

输入格式

第一行包含整数n。
第二行包含n个整数,表示整个数列。

输出格式

共一行,包含n个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中1的个数。

数据范围

1≤n≤100000,
0≤数列中元素的值≤109

输入样例:

5
1 2 3 4 5

输出样例:

1 1 2 1 2

参考代码

import java.util.Scanner;

public class Main {

	public static int lowbit(int x) {
		return x & -x;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		while ((n--) != 0) {
			int x = sc.nextInt();
			int res = 0;
			while (x != 0) {
				x -= lowbit(x);
				res++;
			}
			System.out.print(res + " ");
		}

		sc.close();
	}
}

801.二进制中1的个数

标签:++   static   str   输出   lowbit   void   输入格式   int   return   

原文地址:https://www.cnblogs.com/pannnn/p/13784382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!