最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 二进制求 1 的个数

    正文概述 陈老师   2026-01-20 15:38:51  

    题目描述

    给定一个长度为 nn 的数列,数列中的每个元素都是一个整数。对于数列中的每一个数,我们需要求出它的二进制表示中 11 的个数,并将这些个数输出。

    输入格式

    输入的第一行是一个整数 nn1n1061 \le n\le10^6),表示数列的长度。

    输入的第二行包含 nn 个整数 aia_i0ai1090 \le a_i\le10^9),每个整数之间用空格分隔。

    输出格式

    输出一行,包含 nn个整数,第 ii 个整数表示数列中第 ii 个数的二进制表示中 11 的个数。整数之间用空格分隔。

    样例

    5   
    4 8 15 16 23
    
    1 1 4 1 4
    

    提示

    样例1解释

    • 第一个数 44 的二进制表示为 100100,其中 11 的个数为 11
    • 第二个数 88 的二进制表示为 10001000,其中 11 的个数为 11
    • 第三个数 1515 的二进制表示为 11111111,其中 11 的个数为 44
    • 第四个数 1616 的二进制表示为 1000010000,其中 11 的个数为 11
    • 第五个数 2323 的二进制表示为 1011110111,其中 11 的个数为 44

    数据范围

    • 测试点 1101 - 10 满足 1n1031 \le n\le10^30ai1060 \le a_i\le10^6
    • 测试点 112011 - 20 满足 1n1051 \le n\le10^50ai1090 \le a_i\le10^9
    • 测试点 212521 - 25 满足 1n1061 \le n\le10^60ai1090 \le a_i\le10^9
    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 二进制求 1 的个数