A116896.小午历险记之星核碎片

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

在一座研究所中,小午发现了一枚能量为 NN 的星核。星核的能量结构可以用二进制表示,其中为 11 的比特位代表该能量通道已被激活。

现在,小午想要利用这枚星核生成一些能量碎片。每个能量碎片的能量也可以用一个非负整数 xx 表示,其二进制中为 11 的位置代表碎片所使用的能量通道。

为了保证稳定性,能量碎片必须满足以下规则:

  • 能量为 xx 的碎片所使用的所有能量通道,必须来自能量为 NN 的星核已激活的通道。换句话说:对任意非负整数 kk,如果 xx 的二进制第 kk 位为 11,那么 NN 的二进制第 kk 位也必须为 11

请你按升序输出所有满足条件的能量碎片能量 xx

输入格式

输入仅一行,一个非负整数 NN

输出格式

将所有满足条件的非负整数 xx 按升序输出,每行一个十进制整数

输入输出样例

  • 输入#1

    11

    输出#1

    0
    1
    2
    3
    8
    9
    10
    11

说明/提示

样例解释

星核能量为:11(10)=1011(2)11_{(10)} = 1011_{(2)}

也就是说,第 0,1,30,1,3 位能量通道被激活。
所有合法的能量碎片,只能从这些通道中任选一些(也可以一个都不选):

  • 0000(2)=00000_{(2)} = 0
  • 0001(2)=10001_{(2)} = 1
  • 0010(2)=20010_{(2)} = 2
  • 0011(2)=30011_{(2)} = 3
  • 1000(2)=81000_{(2)} = 8
  • 1001(2)=91001_{(2)} = 9
  • 1010(2)=101010_{(2)} = 10
  • 1011(2)=111011_{(2)} = 11

因此输出如上所示。

数据范围

对于 100%100\% 的测试数据,满足:0N<2600 \le N < 2^{60} , NN 的二进制表示中,为 1 的比特位数量 不超过 1515

首页