Ich bemerkte ein bestimmtes Spiel einen besonderen Lebenszähler hatte, die stattdessen bei Anhalten 999
, eine neue Ziffer gewonnen - die nächste Nummer war Krone hundert 👑00
. Danach 👑99
kam Krone hundert ( 👑👑0
) und die letzte Zahl 👑👑9
war Krone hundert ( oder 👑👑👑
1110 in Dezimalzahl).
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben , die diesen Zähler ausgibt .
Geben Sie bei einer Ganzzahl aus dem Bereich [0,1110]
(einschließlich an beiden Enden) eine dreistellige Zeichenfolge aus
- Jedes Zeichen ist aus der Liste
0123456789👑
- Die Krone (👑) kann nur als das Zeichen ganz links angezeigt werden oder wenn sich links davon eine Krone befindet
- Wenn diese Zahl als Dezimalzahl, aber mit der Krone als gelesen wird
10
, erhalten Sie die ursprüngliche Zahl zurück
Testfälle
0 → "000"
15 → "015"
179 → "179"
999 → "999"
1000 → "👑00"
1097 → "👑97"
1100 → "👑👑0"
1108 → "👑👑8"
1110 → "👑👑👑"
Sie können anstelle der Krone ein beliebiges Nicht-Dezimalzeichen verwenden. Um ein hübsches Drucken zu fördern, wird das Kronenzeichen (UTF8-Bytefolge "\ 240 \ 159 \ 145 \ 145") als ein Byte anstelle von vier Byte gezählt. Ihr Programm muss nicht für Zahlen außerhalb des gültigen Bereichs funktionieren.
Das ist Code-Golf , also gewinnt die kürzeste Antwort, gemessen in Bytes!
Antworten:
05AB1E ,
2018 BytesVerwendet Leerzeichen für Kronen.
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
JavaScript (Node.js) , 50 Byte
Probieren Sie es online!
TIO basierte auf Arnauld's Antwort. Zeige 👑 als
#
.quelle
JavaScript (ES6),
62 4644 Bytes2 Bytes dank @nwellnhof gespeichert
Gibt Kronen als
x
Zeichen aus.Probieren Sie es online!
Wie?
Wir fügen der Eingabe10000 , erzwingen eine Zeichenfolge, suchen das
/1+0/
Muster und ersetzen es durchxxx
. Schließlich geben wir die 3 folgenden Zeichen zurück.Beispiele:
quelle
s.replace(/./g,`#`)
ist ordentlich ... ich hatteArray(s.length+1).join`#`
und mein Regex war auch länger!Shakespeare Programming Language ,
763692690689683 BytesProbieren Sie es online!
Verwendet
" "
anstelle von Kronen. Auf Kosten von 4 weiteren Bytes könnte dies geändert werden, um stattdessen ein "sichtbares" Zeichen anzuzeigen.Erläuterung:
quelle
Python 2 , 53 Bytes
Hut ab vor Arnauld für -22 Bytes . Die Rekursion gewinnt jedoch immer noch.
Probieren Sie es online!
Python 2 , 51 Bytes
Dies implementiert stattdessen die rekursive Methode von tsh . 2 Bytes dank ovs gespart .
Probieren Sie es online!
quelle
1+0
. Daher diese 53-Byte- Version.Python 2 , 52 Bytes
Probieren Sie es online!
quelle
Retina 0.8.2 , 41 Bytes
Probieren Sie es online! Verwendet
#
s anstelle von👑
s. Link enthält Testfälle. Erläuterung:Füllen Sie 1- und 2-stellige Zahlen mit drei Ziffern.
Ändern Sie das führende
1
s von 4-stelligen Zahlen in#
s und löschen Sie das nächste0
.quelle
Jelly , 19 Bytes - 0 = 19
Ein vollständiges Programm, das das Ergebnis mit einem Leerzeichen als Krone druckt.
(Als monadischer Link wird eine gemischte Liste von Ganzzahlen und Leerzeichen ausgegeben.)
Probieren Sie es online! Oder sehen Sie sich die Testsuite an .
... vielleicht ist eine rekursive Implementierung kürzer.
Wie?
quelle
Python 2 , 40 Bytes
Probieren Sie es online!
Implementiert eine Idee ähnlich der auf Regex basierenden Antwort von Mr. Xcoder, jedoch ohne Regex. Wir entfernen führende Einsen
10000+n
sowie das nächste Zeichen und füllen es mit Leerzeichen auf die Länge 3 auf. Das Ergebnis ist ähnlich wie bei der Lösung von ovs, wobeilstrip
jedoch keine zwei Fälle benötigt werden.quelle
Sauber , 87 Bytes
Kronen werden nicht ausgegeben (verwendet
c
).Probieren Sie es online!
Sauber , 99-3 = 96 Bytes
Dieser hat Kronen.
Probieren Sie es online!
quelle
Japt, 20 Bytes
Ein naiver (und leicht betrunkener!) Port von Arnauld's Lösung. Verwendet
"
für die Krone.Versuch es
quelle
Java 10,
8483 BytesPort von @tsh 'C Kommentar .
Verwendet
.
anstelle von Kronen.Probieren Sie es online aus.
Alternativer Ansatz (84 (87-3) Bytes):
Port von @tsh 'JavaScript's Antwort .
Probieren Sie es online aus.
quelle
APL (Dyalog Unicode) , 32 Byte
Probieren Sie es online!
Präfix Direktfunktion.
Port von @ tsh's JS Answer .
Wie:
quelle
PHP, 71 Bytes
druckt
C
für die Krone. Laufen Sie als Pipe mit-nR
oder versuchen Sie es online .quelle
Haskell , 48 Bytes
Probieren Sie es online!
quelle
C
8458 BytesDanke an @tsh für das Speichern von 25 Bytes und danke an @ceilingcat für das Speichern eines Bytes!
Probieren Sie es online!
quelle
f(n,p){for(p=1000;p/=10;)n-=putchar(n/p>9?46:48+n/p)%12*p;}
sed , 39
48 Bytes, aber Punktzahl ist 39, da jedes 👑 als 1 zählt.
Probieren Sie es online!
quelle
Perl 6 , 38 - 9 = 29 Bytes
-2 Bytes dank Jo King
Probieren Sie es online!
Inspiriert von Arnauld's JavaScript-Lösung.
quelle
Sauber , 96 Bytes
Ich denke, dass Super Mario 3D Land, New Super Mao Bros.2 und Super Mario 3D World diesen Lebenspunktestand haben.
Ich bin mit Clean einverstanden .
quelle