Je déteste absolument le chiffre 1
. J'ai donc besoin de votre aide pour convertir les nombres en leurs "formes appropriées".
Les nombres en bonne forme n'ont jamais deux 1
s d'affilée. 101
c'est bien, mais 110
c'est hideux.
Pour convertir, sautez simplement tous les numéros incorrects et comptez normalement. Par exemple...
1 -> 1
2 -> 2
...
10 -> 10
11 -> 12
12 -> 13
...
108 -> 109
109 -> 120
110 -> 121
111 -> 122
etc.
Votre programme doit prendre un entier et le sortir sous une forme appropriée. C'est le code-golf , donc le code le plus court en octets l'emporte.
109 -> 120
conversion ...Réponses:
Burlesque , 10 octets
{11 ~ [n!} FO
Versions plus anciennes:
la source
Perl 5 , 34 octets
Boucler un compteur et changer le double occasionnel.
Tester
la source
Utilitaires Bash + GNU, 36
la source
1$1
suffisant, plutôt que$1$1
?Pyth,
1311 octetsEnregistré 2 octets grâce à @FryAmTheEggman.
Démonstration en direct et cas de test.
Version 13 octets
la source
JavaScript, 53 octets
Alternatif (en utilisant des compréhensions, même longueur):
la source
Python 2, 50
Une fonction anonyme qui répertorie les numéros ne contenant pas
11
dans l'ordre, et prend len
th. L'erreur off-by-one de l'indexation zéro s'annule avec l'inclusion de0
dans la liste.En théorie, cela échouera pour des nombres suffisamment élevés
f(n)>2*n
, mais cela ne devrait pas arriver avantn
au moins10**50
.51 octets:
Compte les nombres
i
jusqu'à ce que le quota den
nombres sans11
soit atteint.Une fonction a la même longueur en raison des corrections ponctuelles nécessaires.
la source
Python 3 74
Encore besoin d'un peu de golf.
C'est assez brutal en ce moment.
la source
Perl 5, 47 octets
la source
JavaScript (ES6) 41
En tant que fonction anonyme
Remarque: la manière la plus simple serait 44:
Testez l'exécution de l'extrait ci-dessous.
la source
Haskell, 51 octets
Exemple d'utilisation:
([x|x<-[0..],notElem('1','1')$zip=<<tail$show x]!!) 110
->121
.Comment ça fonctionne:
la source
MUMPS, 37 octets
Assez simple. La seule chose "intéressante" ici est la construction
j'[11
-'[
c'est l'opérateur "ne contient pas", donc c'est"abc"'["ab"
faux et"abc"'["cd"
c'est vrai. Malgré les deux opérandes d'j'[11
être des nombres, MUMPS reste imperturbable. Il sera heureux de contraindre automatiquement les deux opérandes à des chaînes et de poursuivre sa vie. Hourra!( Soit dit en passant, si vous êtes d' accord avec le programme jamais terminer, nous pouvons raccourcir ce à 35 octets:
t2(i) f j=1:1 s:j'[11 k=k+1 w:k=i j
)la source
PHP, 43 octets
la source
Rubis, 24 octetsMal interprété la tâche, retravaillera plus tard!
la source
11
. Par exemple,12
devrait donner13
, non12
.