返回首页 返回题库

公共二进制位

C++ 简单 GESP三级真题 #位运算#数组

题目描述

题面描述

小红有n个非负整数a1,a2,…,an她将每个整数转换为二进制后,想知道有多少个二进制位在所有整数中均为1。二进制位从右向左编号为0,1,2,…。若某个整数的二进制表示中没有第k位,则认为它的第k位为0。请你求出满足条件的二进制位数量。

输入格式

第一行一个整数n,表示整数的个数。

第二行n个非负整数a1,a2,…,an 。

输出格式

输出一个整数,表示所有整数的二进制表示中均为1的二进制位数量。

样例1

输入:

3
13 7 15

输出:

2

样例解释1

三个整数的二进制表示分别为(1101)2、(0111)2和(1111)2。

其中第0位和第2位均为1,因此答案为2。

数据范围

2 ≤ n ≤ 20000,0≤aᵢ≤10⁹


时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
考察位运算中的按位与操作,所有数的按位与结果中1的个数即为答案;注意数据范围,数组大小要足够。
⚙ 开始做这道题 0 人做过 · 2 收藏 · 18 浏览

讨论(0)