Biorąc jedną literę od A do Z (z wyjątkiem J i K) jako dane wejściowe, wypisz najmniejszą nieujemną liczbę całkowitą zawierającą tę literę w formie pisemnej. Załóżmy, że liczby nigdy nie zawierają słowa „i”, podobnie jak 101
„sto jeden”, a nie „sto jeden”. Załóżmy, że liczenie w Ameryce (na małą skalę), więc milion to 10^6
jeden miliard 10^9
.
a 1000 one thousand
b 1000000000 one billion
c 1000000000000000000000000000 one octillion
d 100 one hundred
e 0 zero
f 4 four
g 8 eight
h 3 three
i 5 five
j
k
l 11 eleven
m 1000000 one million
n 1 one
o 0 zero
p 1000000000000000000000000 one septillion
q 1000000000000000 one quadrillion
r 0 zero
s 6 six
t 2 two
u 4 four
v 5 five
w 2 two
x 6 six
y 20 twenty
z 0 zero
J i K nie są częścią specyfikacji wejściowej, więc twoje zachowanie jest dla nich niezdefiniowane. Biorąc pod uwagę jedną z powyższych liter, wypisz (dziesiętną) liczbę obok niej. Można pobierać dane małymi lub dużymi literami, ale nie można wymagać, aby niektóre dane były pisane małymi literami, a inne dużymi literami.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
code-golf
number
kolmogorov-complexity
Stephen
źródło
źródło
Odpowiedzi:
JavaScript (Node.js) ,
78 75 7473 bajtyWypróbuj online!
W jaki sposób?
Skomentował
źródło
Rubinowy , 65 bajtów
Wypróbuj online!
Ulepszenia inspirowane komentarzem GB.
Rubinowy , 70 bajtów
Wypróbuj online!
źródło
i
był przydatny. Teraz do 65./// , 125 bajtów
Wypróbuj online!
Dane wejściowe są dołączane na końcu kodu, zgodnie z meta we / wy . Stopka w powyższym linku TIO testuje jednocześnie wszystkie litery, jako pojedynczy ciąg rozdzielany znakiem nowej linii, ale kod działa również dobrze przy wprowadzaniu pojedynczego znaku .
źródło
Wolfram Language (Mathematica) , 50 bajtów
Litery b, c, m, p i q są pomijane ze względu na wydajność podczas testowania na TIO.
Wypróbuj online!
źródło
Stax , 33 bajty
Uruchom i debuguj
Procedura:
[3, 5, 7, 9, 11, -6, 1, 0, -24, -15, 0, 6, 2, 4, 5, 2, 6, 20, 0, -3, -9, -27, -2, 0, 4, 8]
za pomocą punktu kodowego. (z zawijaniem)10
do tej mocy, w przeciwnym razie pozostaw bez zmian.źródło
Excel, 85 bajtów
2 bity Golfy:
1E15
) Zapisuje26 bytes
.CHOOSE
gdy nic nie jest podane0
, zapisuje4 bytes
źródło
05AB1E , 36 bajtów
Port odpowiedzi Stax @recursive .
Wprowadzaj małymi literami.
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
Zobacz moją wskazówkę 05AB1E (sekcja Jak kompresować duże liczby całkowite? I Jak kompresować listy liczb całkowitych? ), Aby zrozumieć, dlaczego
•—ßusδtθ}™-5„©‘öæH•
jest3133432551338094772548436198140408157771728287
i•—ßusδtθ}™-5„©‘öæH•57в
jest[39,41,43,45,47,30,37,36,12,21,36,42,38,40,41,38,42,56,36,33,27,9,34,36,40,44]
.źródło
Perl 5
-p
, 84 bajtówWypróbuj online!
źródło
Python 3 , 103 bajty
Wypróbuj online!
źródło
C # (interaktywny kompilator Visual C #) ,
777468 bajtówSkomentował
Wypróbuj online!
źródło
Perl 6 , 67 bajtów
Wypróbuj online!
Używa tabeli odnośników, w której liczba ujemna oznacza, że jest ujemna wykładnika wykładniczego, w przeciwnym razie jest to sama liczba.
źródło
05AB1E , 32 bajty
Wypróbuj online!
źródło
'binary'
wbudowanego, haha. xD Ale myślę, że czasem może być to przydatne. ;)Bash ,
129100 bajtówWypróbuj online!
Wypróbuj online!Jak to działa:
$ A: Base64 zakodowane „a” - „z”: liczby mniejsze niż 100 są przechowywane bezpośrednio. Większe liczby są kodowane jako liczba zer +30. (np .: 1000 = 33, 100 = 32 itd.)
Wyodrębnij jedną literę z $ A w pozycji określonej w argumencie $ 1 (zdekodowany base64, -10, aby uwzględnić przesunięcie „a”). Base64 dekoduje ten znak i przechowuje w c.
Jeśli $ c jest większe niż 30, wydrukuj „1” wypełniony zerami $ c-30. W przeciwnym razie wydrukuj $ c.
źródło
Młot kowalski , 17 bajtów
Technicznie rzecz biorąc, ma on długość 133 bitów, ale tak naprawdę nie daje to 16.625 bajtów, jak twierdzi kompresor.
To prawdopodobnie dekoduje
(w przybliżeniu taka sama jak moja odpowiedź Mathematica), chociaż ledwo go zakodowałem (wygląda na to, że mój komputer ma problemy ze zgodnością ze wszystkim), więc powodzenia w dekodowaniu go ponownie, aby to sprawdzić. Mogłem popełnić błędy podczas korzystania z enkodera, więc bądź ostrożny.
źródło
Galaretka , 36 bajtów
Wypróbuj online!
Łącze monadyczne przyjmujące jako argument małą literę i zwracające liczbę całkowitą. Zwraca
0
zaj
ik
.Wyjaśnienie
źródło
Retina 0.8.2 , 89 bajtów
Wypróbuj online! Link zawiera przypadki testowe. Wyjaśnienie:
Zduplikuj dane wejściowe.
Zmień pierwszą kopię na (pierwszą) cyfrę odpowiedniego wyniku.
Jeśli liczba ma wielokrotność 3 ostatnich zer, uzyskaj tę wielokrotność teraz.
I faktycznie przekonwertuj go na odpowiednią liczbę zer końcowych. (Zauważ, że uprościłoby to
*3*0
w Retina 1.)Naprawcie
d
.Naprawić
l
iy
i usunąć wszelkie pozostałe litery.źródło
PHP , 104 bajty
Wypróbuj online!
Mam ciąg znaków,
^FX]0483500GC10UL0624526P0
który zawiera pojedynczy znak dla każdej litery wejściowej od „a” do „z”. Wyodrębniam ten znak na podstawie danych wejściowych i przechowuję go$a
. Jeśli znak nie jest cyfrą, jego kod ASCII mod 30 zostanie zapisany$b
.Jeśli
$a
jest to cyfra, drukowana jest ta sama cyfra, jest ona wykorzystywana do każdego wejścia, które wymaga wyjścia od 0 do 9 (np. „E”, „f” itp.).W przeciwnym razie, jeśli
$b
jest to 20 lub 11, drukowany jest ten sam numer, jest on używany dla „l” i „y”.W przeciwnym razie
$b
drukowana jest cyfra „1” uzupełniona „0”. Na przykład dla wprowadzenia „a” znakiem jest „^”, który ma kod ASCII 94.,94 % 30 = 4
a „1” uzupełniony do 4, przy czym „0” s będzie wynosić „1000”.źródło