CCF GESP 2026年9月认证 C++ 3级
所有 GESP 真题,手机上也能刷 · 自动判分 · 错题自动进错题本 扫码去刷题目描述
小红有 $n$ 个非负整数 $a_{1},a_{2},…,a_{n}$。她将每个整数转换为二进制后,想知道有多少个二进制位在所有整数中均为 $1$。
二进制位从右向左编号为 $0,1,2,…$。若某个整数的二进制表示中没有第 $k$ 位,则认为它的第 $k$ 位为 $0$。
请你求出满足条件的二进制位数量。
输入格式
- 第一行一个整数 $n$,表示整数的个数。
- 第二行 $n$ 个非负整数 $a_{1},a_{2},…,a_{n}$。
输出格式
输出一个整数,表示所有整数的二进制表示中均为 $1$ 的二进制位数量。
样例说明
样例 1
3
13 7 15
2
三个整数的二进制表示分别为 $(1101)_{2}$、$(0111)_{2}$ 和 $(1111)_{2}$。
其中第 $0$ 位和第 $2$ 位均为 $1$,因此答案为 $2$。
数据范围
$2≤n≤20000$,$0≤a_{i}≤10^{9}$。
题目描述
小明拿到了一段字符串文本,小明希望用下面的规则分割这个字符串:
- 小明从左到右扫描字符串,遇到第一个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这个空格);
- 对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续两个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这两个空格);
- 对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续三个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这三个空格);
- 以此类推,小明每分割一次,下一次分割就需要更长的连续空格;直到字符串无法再次分割。
最后输出每次分割的左侧的字符串,以及最后一次分割的右侧字符串。
如果字符串完全无法进行任何一次分割,直接输出其本身。
输入格式
输入一行,一个字符串。
输出格式
输出若干行。每行为分割后的一个字符串,注意依次输出:
第一次分割左侧的字符串,第二次分割左侧的字符串,……,最后一次分割左侧的字符串,最后一次分割右侧的字符串。
样例说明
样例 1
sdfd 55 55 99312
sdfd
55 55
99312
- 第一次分割将字符串分割为
sdfd和55 55 99312; - 第二次分割将字符串分割为
55 55和99312。
对于第二次分割,注意 55 和 55 之间虽然有空格,但是第二次分割需要连续两个空格才行;
另外,55 55 和 99312 之间有三个空格,第二次分割只需要两个,所以会分割为 55 55 和 99312,也就是右侧会留下一个空格;因为只留下了一个空格,所以不再满足第三次分割要求。
样例 2
AbCd 999
AbCd
999
- 第一次分割将字符串分割为
AbCd和999; - 第二次分割将字符串分割为 空字符串 和
999。
由于 AbCd 和 999 之间有三个空格,第一次分割消耗掉一个,因此还能进行第二次分割,这个时候会分割出空字符串,因此输出中会输出一个空行(不能省略)。
数据范围
字符串长度不超过 $1000$,字符串中只包含大写字母、小写字母,数字,或空格,且输入字符串不会以空格结尾。
特别强调:输入仅一行,但可能包含若干空格