这里是一个简单序列的前100个数字:
0,1,0,2,1,4,3,7,6,11,10,16,15,22,21,29,28,37,36,46,45,56,55,67,66,79,78,92,91,106,105,121,120,137,136,154,153,172,171,191,190,211,210,232,231,254,253,277,276,301,300,326,325,352,351,379,378,407,406,436,435,466,465,497,496,529,528,562,561,596,595,631,630,667,666,704,703,742,741,781,780,821,820,862,861,904,903,947,946,991,990,1036,1035,1082,1081,1129,1128,1177,1176,1226
这个序列如何运作?
n: 0 1 2 3 4 5 6 7 8 9 10 11 12
0, 1-1=0, 2-1=1, 4-1=3, 7-1=6, 11-1=10, 16-1=15,
0+1=1, 0+2=2, 1+3=4, 3+4=7, 6+5=11, 10+6=16, 15+7=22
a(0) = 0
- 对于每个奇数
n
(0索引),它都是a(n-1) + X
(X=1
每次访问时在1 处加1) - 对于每个偶数
n
(0索引),a(n-1) - 1
挑战:
之一:
- 给定输入整数
n
,输出n
序列中的'th号。 - 给定输入整数
n
,输出n
序列的第一个数字。 - 无限期地输出序列,而无需输入(或获取空的未使用输入)。
挑战规则:
- 输入
n
可以是0或1的索引。 - 如果输出序列(的一部分),则可以使用列表/数组,并使用任何定界符(空格,逗号,换行符等)打印到STDOUT。你的来电。
- 请说明您在答案中使用的三个选项中的哪个。
- 您必须至少支持前10,000个数字(第10,000个数字是
12,497,501
)。
一般规则:
- 这是代码高尔夫球,因此最短答案以字节为单位。
不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 - 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。你的来电。
- 默认漏洞是禁止的。
- 如果可能的话,请添加一个带有测试代码的链接。
- 另外,请尽可能添加说明。
测试用例:
粘贴序列中前10,001个数字。随意选择您想要的任何东西。
一些更高的数字:
n (0-indexed) Output:
68,690 589,772,340
100,000 1,249,975,000
162,207 3,288,888,857
453,271 25,681,824,931
888,888 98,765,012,346
1,000,000 124,999,750,000
ÎGDN+D<
生成序列,但是抓取第n个元素似乎...很难占用3个字节。