#6628. 奇异点序列解码(2.1)
奇异点序列解码(2.1)
题目名称:奇异点序列解码
题目背景
在遥远的 星系,科学家们发现了一种奇特的自然数列。每当给定一个代表当前能量状态的正整数 时,该系统会自动激活一个连续的“能量区间”。
据观测,这个区间的长度并非随机,而是由 本身的某种“核心频率”决定的。只有成功解码并输出该区间内所有能量点的人,才能稳定住系统,防止时空崩塌。
题目描述
对于任何给定的正整数 ,能量区间的右端点固定为 。 该区间的长度 遵循以下神秘规则:
- 将 转化为其等值的二进制形式。
- 寻找该二进制数中,从右向左数第一个出现的数字
1。 - 这个
1以及它右边所有的0共同组成的数值,即为该区间的总长度 。
任务: 请根据给定的 ,计算出能量区间的左端点,并从小到大输出该能量区间 中的所有整数点。
输入格式
输入一个正整数 (),代表当前的能量状态。
输出格式
在一行中输出若干个由空格隔开的整数,代表该能量区间内的所有点。
样例输入 1
12
样例输出 1
9 10 11 12
样例说明:
的二进制为 1100。从右往左数第一个 1 出现在第三位,它和右边的 0 组成了 100。
二进制 100 对应的十进制数值为 。因此区间长度 。
区间为 ,即 。
样例输入 2
7
样例输出 2
7
样例说明:
的二进制为 111。从右往左数第一个 1 就在最后一位,组成 1。
长度 ,区间仅包含 本身。