A92169.abc269C - Submask

普及/提高-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

问题陈述

给你一个非负整数 NN 。按升序打印所有满足以下条件的非负整数 xx

  • xx 的二进制表示中包含 11 的数字位置集合是在 NN 的二进制表示中包含 11 的数字位置集合的子集。
    • 也就是说,对于每个非负整数 kk 都成立:如果 xx2k2^k 位上的数字是 11 ,那么 NN2k2^k 位上的数字就是 11

数据范围

  • NN 是整数。
  • 0N<2600 \le N < 2^{60}
  • NN 的二进制表示中,最多有 1515 个数位包含 11

输入格式

输入内容由标准输入法提供,格式如下

NN

输出格式

将答案按升序打印为十进制整数,每行一个。

输入输出样例

  • 输入#1

    11
    

    输出#1

    0
    1
    2
    3
    8
    9
    10
    11
    
  • 输入#2

    0
    

    输出#2

    0
    
  • 输入#3

    576461302059761664
    

    输出#3

    0
    524288
    549755813888
    549756338176
    576460752303423488
    576460752303947776
    576461302059237376
    576461302059761664
    

说明/提示

样例一解释:

N=11(10)N = 11_{(10)} 的二进制表示为 1011(2)1011_{(2)}
满足条件的非负整数 xx 是:

  • 0000(2)=0(10)0000_{(2)}=0_{(10)}
  • 0001(2)=1(10)0001_{(2)}=1_{(10)}
  • 0010(2)=2(10)0010_{(2)}=2_{(10)}
  • 0011(2)=3(10)0011_{(2)}=3_{(10)}
  • 1000(2)=8(10)1000_{(2)}=8_{(10)}
  • 1001(2)=9(10)1001_{(2)}=9_{(10)}
  • 1010(2)=10(10)1010_{(2)}=10_{(10)}
  • 1011(2)=11(10)1011_{(2)}=11_{(10)}

输入可能不适合32 位有符号整数。

首页