Ich hasse die Ziffer absolut 1
. Also brauche ich Ihre Hilfe, um Zahlen in ihre "richtigen Formen" umzuwandeln.
Zahlen in der richtigen Form haben niemals zwei 1
s hintereinander. 101
ist okay, aber 110
abscheulich.
Überspringen Sie zum Konvertieren einfach alle falschen Zahlen und zählen Sie normal. Zum Beispiel...
1 -> 1
2 -> 2
...
10 -> 10
11 -> 12
12 -> 13
...
108 -> 109
109 -> 120
110 -> 121
111 -> 122
und so weiter.
Ihr Programm sollte eine Ganzzahl annehmen und diese in der richtigen Form ausgeben. Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
109 -> 120
Konvertierung nicht ...Antworten:
Burlesque , 10 Bytes
{11 ~ [n!} FO
Ältere Versionen:
quelle
Perl 5 , 34 Bytes
Einen Zähler schleifen und gelegentlich den doppelten austauschen.
Prüfung
quelle
Bash + GNU-Utils, 36
quelle
1$1
genügt das eher als$1$1
?Pyth,
1311 Bytes2 Bytes dank @FryAmTheEggman gespart.
Live-Demo und Testfälle.
13-Byte-Version
quelle
JavaScript, 53 Byte
Alternative (unter Verwendung von Verstehen, gleicher Länge):
quelle
Python 2, 50
Eine anonyme Funktion, die die nicht
11
in dern
richtigen Reihenfolge enthaltenen Zahlen auflistet und die th-te nimmt . Der Fehler der Null-Indizierung (1: 1) bricht mit der Aufnahme0
in die Liste ab.Theoretisch wird dies für ausreichend hohe Zahlen fehlschlagen
f(n)>2*n
, aber dies sollte nicht geschehen, bisn
es mindestens so weit ist10**50
.51 Bytes:
Zählt Zahlen,
i
bis die Quoten
ohne Zahlen erreicht11
ist.Eine Funktion hat dieselbe Länge, da Korrekturen nur einmal erforderlich sind.
quelle
Python 3 74
Brauchen noch ein bisschen Golf.
Im Moment ist es ziemlich brachiale Gewalt.
quelle
Perl 5, 47 Bytes
quelle
JavaScript (ES6) 41
Als anonyme Funktion
Hinweis: Der einfachste Weg wäre 44:
Testen Sie das folgende Snippet.
quelle
Haskell, 51 Bytes
Anwendungsbeispiel:
([x|x<-[0..],notElem('1','1')$zip=<<tail$show x]!!) 110
->121
.Wie es funktioniert:
quelle
MUMPS, 37 Bytes
Ziemlich einfach. Das einzig "interessante" ist hier das Konstrukt
j'[11
-'[
ist der Operator "enthält nicht", also"abc"'["ab"
ist das falsch und"abc"'["cd"
wahr. Obwohl beide Operandenj'[11
Zahlen sind, bleibt MUMPS unberührt. Es wird beide Operanden glücklich automatisch in Strings umwandeln und mit seinem Leben weitermachen. Hurra!(Übrigens, wenn Sie in Ordnung sind mit dem Programm nie endet, können wir dies auf 35 Bytes verkürzen:
t2(i) f j=1:1 s:j'[11 k=k+1 w:k=i j
)quelle
PHP, 43 Bytes
quelle
Ruby, 24 BytesDie Aufgabe falsch interpretiert, wird später überarbeitet!
quelle
11
. Zum Beispiel12
sollte es13
nicht geben12
.