Considere a seguinte sequência:
0 1 3 2 5 4 8 6 7 12 9 10 11 17 13 14 15 16 23 ...
Parece bastante sem padrão, certo? Aqui está como isso funciona. Começando com 0
, salte n
números inteiros, n
iniciando em 1
. Esse é o próximo número na sequência. Em seguida, acrescente os números "ignorados" e que ainda não foram vistos em ordem crescente. Em seguida, incremente n
e pule do último número anexado. Repita esse padrão.
Então, por exemplo, quando chegamos 11
, chegamos n=5
. Aumentamos n
para ser n=6
, saltamos para cima e 17
, em seguida, acrescentamos, 13 14 15 16
pois eles ainda não foram vistos. Nosso próximo salto é n=7
, então o próximo elemento na sequência é 23
.
O desafio
Com base na entrada x
, imprima o x
termo th desta sequência, os primeiros x
termos da sequência ou crie uma lista infinita dos termos da sequência. Você pode escolher a indexação 0 ou 1.
E / S e regras
- A entrada e saída podem ser fornecidas por qualquer método conveniente .
- Pode-se presumir que a entrada e a saída se encaixam no tipo de número nativo do seu idioma.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.