给定一个整数n
,输出n
索引为0或1 的第一个倾斜的二进制数。它们之所以被称为是因为它们是如何生成的:
将数字以二进制形式彼此下写(右对齐):
........0
........1
.......10
.......11
......100
......101
......110
......111
.....1000
.........
然后,您需要从左下角到右上角取每个对角线,以使每个最后一位是对角线的最后一位。这是标记为的第四个对角线(零索引)x
,它是100
:
........0
........1
.......10
.......11
......10x
......1x1
......x10
......111
.....1000
.........
向上倾斜的对角线顺序为:
0
11
110
101
100
1111
1010
.......
然后,转换为十进制 0, 3, 6, 5, 4, 15, 10, ...
这是code-golf,因此以字节为单位的最短代码获胜。
12
我认为这个说明不是很清楚。我必须做大量的外部阅读,才能理解这里的要求。
—
发布Rock Garf Hunter,2016年
您是什么意思,“ 0或1索引 ”?您是说一个人输出第一个
—
smls
n
还是第一个n+1
数字?
我认为,如果您只需要返回第n个值,则可能会提供更多有趣的答案。
—
xnor
@PatrickRoberts我从来没有限制生成多少个。我只是说“用二进制写数字...”。您可以生成所需数量的东西。
—
mbomb007'2013/