我定义了一种组合序列的方法,该方法意味着将序列中的每个数字连接为一个字符串,然后将结果设为整数。
[1, 2, 3] -> 123
对于每个至少包含3个连续整数的有限序列,该序列中恰好缺少一个元素,并且该丢失的元素可能不是序列中的第一个或最后一个元素,请输出合并后的序列产生的整数。我将其称为“单个有损整数”。
[1, 2, 3] -> {1, 3} (missing an element) -> 13
这个单损整数序列是以下子序列(分区?)的并集:
{n, n+2} -> 13, 24, 35, 46, 57, 68, 79, 810, 911, 1012, ...
{n, n+1, n+3} -> 124, 235, 346, ...
{n, n+2, n+3} -> 134, 245, 356, ...
{n, n+1, n+2, n+4} -> 1235, 2346, 3457, ...
{n, n+1, n+3, n+4} -> 1245, 2356, 3467, ...
{n, n+2, n+3, n+4} -> 1345, 2456, 3567, ...
...
for n ∈ ℕ (integers >= 1)
这些整数必须按升序打印。前25个单损整数如下:
13, 24, 35, 46, 57, 68, 79, 124, 134, 235, 245, 346, 356, 457, 467, 568, 578, 679, 689, 810, 911, 1012, 1113, 1214, 1235, ...
未引用的参考实现。我使它变得更快,而不是更小。
规则:
- 最短的代码胜出
- 您可以(说哪一个):
- 永远打印单个有损整数
- 给定正整数n,将前n个元素打印或返回为列表,或者用逗号或空格分隔的字符串。
- 如果您的语言允许,则应支持任意大的整数,尤其是要永久打印时。
注意:此序列在OEIS中尚无条目。
另一个注意事项:我将它们命名为“单有损整数”,以便依次出现“双有损整数”,“ N-有损整数”,“(N + 1)-有损整数”和“有损整数” ”(所有这些的结合)。
fastest-code
挑战。