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 nnúmeros inteiros, niniciando 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 ne pule do último número anexado. Repita esse padrão.
Então, por exemplo, quando chegamos 11, chegamos n=5. Aumentamos npara ser n=6, saltamos para cima e 17, em seguida, acrescentamos, 13 14 15 16pois 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 xtermo th desta sequência, os primeiros xtermos 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.