Considérez la séquence suivante:
0 1 3 2 5 4 8 6 7 12 9 10 11 17 13 14 15 16 23 ...
Semble assez sans motif, non? Voici comment ça fonctionne. En commençant par 0, sauter des nentiers, en ncommençant par 1. C'est le numéro suivant de la séquence. Ensuite, ajoutez tous les nombres "sautés" et qui n'ont pas encore été vus dans l'ordre croissant. Ensuite, incrémentez net sautez du dernier nombre ajouté. Répétez ce modèle.
Ainsi, par exemple, lorsque nous atteignons 11, nous y sommes n=5. Nous incrémentons npour être n=6, sautons à 17, puis ajoutons 13 14 15 16puisque ceux-ci n'ont pas encore été vus. Notre prochain saut est n=7, donc l'élément suivant de la séquence est 23.
Le défi
Étant donné l'entrée x, sortez le xterme de cette séquence, les premiers xtermes de la séquence, ou créez une liste infinie des termes de la séquence. Vous pouvez choisir l'indexation 0 ou 1.
E / S et règles
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- L'entrée et la sortie peuvent être supposées correspondre au type de numéro natif de votre langue.
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.