A116896.小午历险记之星核碎片
普及-
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
在一座研究所中,小午发现了一枚能量为 N 的星核。星核的能量结构可以用二进制表示,其中为 1 的比特位代表该能量通道已被激活。
现在,小午想要利用这枚星核生成一些能量碎片。每个能量碎片的能量也可以用一个非负整数 x 表示,其二进制中为 1 的位置代表碎片所使用的能量通道。
为了保证稳定性,能量碎片必须满足以下规则:
- 能量为 x 的碎片所使用的所有能量通道,必须来自能量为 N 的星核已激活的通道。换句话说:对任意非负整数 k,如果 x 的二进制第 k 位为 1,那么 N 的二进制第 k 位也必须为 1。
请你按升序输出所有满足条件的能量碎片能量 x。
输入格式
输入仅一行,一个非负整数 N。
输出格式
将所有满足条件的非负整数 x 按升序输出,每行一个十进制整数。
输入输出样例
输入#1
11
输出#1
0 1 2 3 8 9 10 11
说明/提示
样例解释
星核能量为:11(10)=1011(2)
也就是说,第 0,1,3 位能量通道被激活。
所有合法的能量碎片,只能从这些通道中任选一些(也可以一个都不选):
- 0000(2)=0
- 0001(2)=1
- 0010(2)=2
- 0011(2)=3
- 1000(2)=8
- 1001(2)=9
- 1010(2)=10
- 1011(2)=11
因此输出如上所示。
数据范围
对于 100% 的测试数据,满足:0≤N<260 , N 的二进制表示中,为 1 的比特位数量 不超过 15 个