#6628. 奇异点序列解码(2.1)

奇异点序列解码(2.1)

题目名称:奇异点序列解码

题目背景

在遥远的 Ω\Omega 星系,科学家们发现了一种奇特的自然数列。每当给定一个代表当前能量状态的正整数 nn 时,该系统会自动激活一个连续的“能量区间”。

据观测,这个区间的长度并非随机,而是由 nn 本身的某种“核心频率”决定的。只有成功解码并输出该区间内所有能量点的人,才能稳定住系统,防止时空崩塌。

题目描述

对于任何给定的正整数 nn,能量区间的右端点固定为 nn。 该区间的长度 LL 遵循以下神秘规则

  • nn 转化为其等值的二进制形式。
  • 寻找该二进制数中,从右向左数第一个出现的数字 1
  • 这个 1 以及它右边所有的 0 共同组成的数值,即为该区间的总长度 LL

任务: 请根据给定的 nn,计算出能量区间的左端点,并从小到大输出该能量区间 [nL+1, n][n-L+1, \ n] 中的所有整数点。


输入格式

输入一个正整数 nn (1n1061 \le n \le 10^6),代表当前的能量状态。

输出格式

在一行中输出若干个由空格隔开的整数,代表该能量区间内的所有点。


样例输入 1

12

样例输出 1

9 10 11 12

样例说明: 1212 的二进制为 1100。从右往左数第一个 1 出现在第三位,它和右边的 0 组成了 100。 二进制 100 对应的十进制数值为 44。因此区间长度 L=4L=4。 区间为 [124+1,12][12-4+1, 12],即 [9,12][9, 12]


样例输入 2

7

样例输出 2

7

样例说明: 77 的二进制为 111。从右往左数第一个 1 就在最后一位,组成 1。 长度 L=1L=1,区间仅包含 77 本身。