Introduction (peut être ignoré)
Mettre tous les nombres positifs dans son ordre normal (1, 2, 3, ...) est un peu ennuyeux, n'est-ce pas? Voici donc une série de défis autour des permutations (remaniements) de tous les nombres positifs. Il s'agit du deuxième défi de cette série. Le premier défi se trouve ici .
Dans ce défi, nous utilisons des codes Gray pour réarranger les nombres naturels. Un code Gray ou "code binaire réfléchi" est un codage binaire de telle manière que deux valeurs successives diffèrent en un seul bit. Une application pratique de cet encodage est de l'utiliser dans des encodeurs rotatifs , d'où ma référence à "Turn My Way" .
Notez que ce codage laisse un certain degré de liberté. Par exemple, après le binaire 1100, il y a quatre codes suivants possibles: 1101, 1110, 1000 et 0100. C'est pourquoi je définirai comme la plus petite valeur non utilisée précédemment qui ne diffère qu'un seul caractère dans le codage binaire. Cette séquence correspond à A163252 .
Puisqu'il s'agit d'un défi de "séquence pure", la tâche consiste à sortir pour un donné en entrée, où a (n) est A163252 .
Tâche
Étant donné une entrée entière , la sortie au format entier ( pas au format binaire).
est défini comme l'entier le moins positif ne se produisant pas plus tôt dans la séquence, de telle sorte que et diffèrent d'un seul bit lorsqu'ils sont écrits en binaire.
Remarque: l'indexation basée sur 1 est supposée ici; vous pouvez utiliser une indexation basée sur 0, donc , etc. Veuillez le mentionner dans votre réponse si vous choisissez de l'utiliser.
Cas de test
Input | Output
--------------
1 | 1
5 | 4
20 | 18
50 | 48
123 | 121
1234 | 1333
3000 | 3030
9999 | 9997
Règles
- L'entrée et la sortie sont des entiers (votre programme doit au moins prendre en charge l'entrée et la sortie dans la plage de 1 à 32 767)
- Une entrée non valide (0, flottants, chaînes, valeurs négatives, etc.) peut entraîner une sortie imprévue, des erreurs ou un comportement (non) défini. Dans A163252 , est défini comme 0. Pour ce défi, nous l'ignorerons.
- Les règles d'E / S par défaut s'appliquent.
- Les failles par défaut sont interdites.
- Il s'agit de code-golf , donc les réponses les plus courtes en octets l'emportent
Note finale
Voir les questions PP&CG connexes (mais pas égales) suivantes: