Zauważyłem, że pewna gra ma osobliwy licznik życia, który zamiast się zatrzymać 999
, zyskał nową cyfrę - następną liczbą była setka koron👑00
. Po 👑99
przyszedł korony sto crownty ( 👑👑0
) i ostatni numer, po 👑👑9
, była korona sto crownty korona lub 👑👑👑
, co byłoby 1110 w systemie dziesiętnym.
Twoim zadaniem jest napisanie programu lub funkcji, która wyświetli ten licznik.
Biorąc pod uwagę liczbę całkowitą z zakresu [0,1110]
(włącznie na obu końcach), wypisz ciąg trzech znaków gdzie
- każda postać jest z listy
0123456789👑
- korona (👑) może pojawiać się tylko jako postać znajdująca się najbardziej na lewo lub gdy po lewej stronie znajduje się korona
- gdy liczba ta jest odczytywana jako liczba dziesiętna, ale z liczeniem korony jako
10
, odzyskujesz pierwotną liczbę
Przypadki testowe
0 → "000"
15 → "015"
179 → "179"
999 → "999"
1000 → "👑00"
1097 → "👑97"
1100 → "👑👑0"
1108 → "👑👑8"
1110 → "👑👑👑"
Zamiast korony możesz użyć dowolnego znaku nie dziesiętnego. Aby zachęcić do ładnego drukowania, znak korony (sekwencja bajtów UTF8 „\ 240 \ 159 \ 145 \ 145”) liczy się jako jeden bajt zamiast czterech. Twój program nie musi działać dla liczb spoza prawidłowego zakresu.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź, mierzona w bajtach!
Odpowiedzi:
05AB1E ,
2018 bajtówWykorzystuje miejsca na korony.
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
JavaScript (Node.js) , 50 bajtów
Wypróbuj online!
TIO oparto na odpowiedzi Arnaulda. Pokaż 👑 jako
#
.źródło
JavaScript (ES6),
62 4644 bajtyZaoszczędzono 2 bajty dzięki @nwellnhof
Wyprowadza korony jako
x
postacie.Wypróbuj online!
W jaki sposób?
/1+0/
xxx
Przykłady:
źródło
s.replace(/./g,`#`)
is neat... I hadArray(s.length+1).join`#`
, and my regex was longer too! Nice work, +1Shakespeare Programming Language,
763692690689683 bytesTry it online!
Uses
" "
instead of crowns. At the cost of 4 more bytes, this could be modified to show a "visible" character instead.Explanation:
źródło
Python 2, 53 bytes
Hats off to Arnauld for -22 bytes. Recursion still wins, though.
Try it online!
Python 2, 51 bytes
This instead implements tsh's recursive method. Saved 2 bytes thanks to ovs.
Try it online!
źródło
1+0
. Hence this 53 bytes version.Python 2, 52 bytes
Try it online!
źródło
Retina 0.8.2, 41 bytes
Try it online! Uses
#
s instead of👑
s. Link includes test cases. Explanation:Pad 1- and 2-digit numbers to three digits.
Change leading
1
s of 4-digit numbers to#
s and delete the next0
.źródło
Jelly, 19 bytes - 0 = 19
A full program printing the result using a space character as the crown.
(As a monadic Link a mixed list of integer digits and space characters is yielded)
Try it online! Or see the test-suite.
...maybe a recursive implementation will be shorter.
How?
źródło
Python 2, 40 bytes
Try it online!
Implements an idea similar to Mr. Xcoder's regex-based answer but without a regex. We remove leading 1's in
10000+n
as well as the next character, then pad with spaces to length 3. The result is similar to ovs's solution usinglstrip
but without needing two cases.źródło
Clean, 87 bytes
Doesn't output crowns (uses
c
).Try it online!
Clean, 99 - 3 = 96 bytes
This one has crowns.
Try it online!
źródło
Japt, 20 bytes
A naïve (and slightly drunk!) port of Arnauld's solution. Uses
"
for crown.Try it
źródło
Java 10,
8483 bytesPort of @tsh' C comment.
Uses
.
instead of crowns.Try it online.
Alternative approach (84 (87-3) bytes):
Port of @tsh' JavaScript's answer.
Try it online.
źródło
APL (Dyalog Unicode), 32 bytes
Try it online!
Prefix direct function.
Port of @tsh's JS Answer.
How:
źródło
PHP, 71 bytes
prints
C
for the crown. Run as pipe with-nR
or try it online.źródło
Haskell, 48 bytes
Try it online!
źródło
C,
8458 bytesThanks to @tsh for saving 25 bytes and thanks to @ceilingcat for saving a byte!
Try it online!
źródło
f(n,p){for(p=1000;p/=10;)n-=putchar(n/p>9?46:48+n/p)%12*p;}
sed, 39
48 bytes, but score is 39, since each 👑 counts as 1.
Try it online!
źródło
Perl 6, 38 - 9 = 29 bytes
-2 bytes thanks to Jo King
Try it online!
Inspired by Arnauld's JavaScript solution.
źródło
Clean, 96 bytes
I think Super Mario 3D Land, New Super Mao Bros.2, and Super Mario 3D World have this life counter.
I agree with Clean.
źródło