任务
找到一组数字,使二进制表示形式包含两个或多个1
由至少一个隔开的游程0
。
例如,对于4位长的数字:
0 0000 (no ones)
1 0001 (only one run)
2 0010 (only one run)
3 0011 (only one run)
4 0100 (only one run)
5 0101 Valid
6 0110 (only one run)
7 0111 (only one run)
8 1000 (only one run)
9 1001 Valid
10 1010 Valid
11 1011 Valid
12 1100 (only one run)
13 1101 Valid
14 1110 (only one run)
15 1111 (only one run)
输入值
通过范围内的某些输入提供给应用程序的整数3 .. 32
。这表示要计数的最大位数。
输入n
表示需要检查数字。0 .. 2n-1
输出量
符合条件的所有数字的定界(您选择)列表。数字应按数字顺序显示。可以使用额外的尾部定界符。数据结构外壳(例如[]
和类似外壳)也是可以接受的。
例
Input: 3
Output: 5
Input: 4
Output: 5, 9, 10, 11, 13
Input: 5
Output: 5, 9, 10, 11, 13, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 29
这是代码高尔夫球 -字节数最少的答案获胜。
[1, 2, 3]
吗?