Acwing801二进制中1的个数

题目

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

输入格式:

第一行包含整数 n

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

输出格式:

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

数据范围:

1≤n≤100000 0≤数列中元素的值≤10^9

输入样例:

复制代码
5
1 2 3 4 5

输出样例:

复制代码
1 1 2 1 2

代码

java 复制代码
package Acwing.basicAlgorithm;

import java.util.Scanner;

public class 二进制中1的个数_801 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
//        int[] a = new int[n];
        for (int i =0 ;i < n;i ++) {
            int x = in.nextInt();
            int count = 0;
            while (x != 0) {
                count ++;
                x -= bit(x);
            }
            System.out.print(count + " ");
        }


    }
    public static int bit(int x) {
        return x & -x;
    }
//java中把统计二进制个数方法封装在jdk中了,可以直接调用Integer类中的bitCount方法
//import java.io.BufferedInputStream;
//import java.util.Scanner;
//
//    public class Main {
//
//        public static void main(String[] args) {
//            Scanner scanner = new Scanner(new BufferedInputStream(System.in));
//            int n = scanner.nextInt();
//            for(int i=0;i<n;i++) {
//                System.out.print(Integer.bitCount(scanner.nextInt())+" ");
//            }
//            scanner.close();
//        }
//
//    }
}
相关推荐
麦兜*1 分钟前
Spring Boot 整合 Apache Doris:实现海量数据实时OLAP分析实战
大数据·spring boot·后端·spring·apache
源代码•宸3 分钟前
Golang基础语法(go语言指针、go语言方法、go语言接口、go语言断言)
开发语言·经验分享·后端·golang·接口·指针·方法
Bony-4 分钟前
Golang 常用工具
开发语言·后端·golang
pyniu5 分钟前
Spring Boot车辆管理系统实战开发
java·spring boot·后端
love_summer6 分钟前
深入理解Python控制流:从if-else到结构模式匹配,写出更优雅的条件判断逻辑
后端
牛奔7 分钟前
GVM:Go 版本管理器安装与使用指南
开发语言·后端·golang
武子康8 分钟前
大数据-207 如何应对多重共线性:使用线性回归中的最小二乘法时常见问题与解决方案
大数据·后端·机器学习
颜酱9 分钟前
用填充表格法-继续吃透完全背包及其变形
前端·后端·算法
pathfinder同学9 分钟前
Node.js 框架的 10 个写法痛点,以及更优雅的解决方案
后端
gelald13 分钟前
AQS 解析:从原理到实战
java·后端