洛谷 B4577:[GESP202609 三级] 公共二进制位 ← 位运算
【题目来源】
【题目描述】
小红有 n 个非负整数 a1,a2,…,an。她将每个整数转换为二进制后,想知道有多少个二进制位在所有整数中均为 1。
二进制位从右向左编号为 0,1,2,…。若某个整数的二进制表示中没有第 k 位,则认为它的第 k 位为 0。
请你求出满足条件的二进制位数量。
【输入格式】
第一行一个整数 n,表示整数的个数。
第二行 n 个非负整数 a1,a2,…,an。
【输出格式】
输出一个整数,表示所有整数的二进制表示中均为 1 的二进制位数量。
【输入样例】
3
13 7 15
【输出样例】
2
【数据范围】
2≤n≤20000,0≤ai≤10^9。
【算法分析】
代码使用按位与 & 保留数组全部元素共有的二进制 1 位,再用 t&1 取最低位、最后通过右移逐位统计 1 的个数。
【算法代码】
【参考文献】

浙公网安备 33010602011771号