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 n
entiers, en n
commenç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 n
et 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 n
pour être n=6
, sautons à 17
, puis ajoutons 13 14 15 16
puisque 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 x
terme de cette séquence, les premiers x
termes 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.