Geben Sie bei einem einzelnen Buchstaben von A bis Z (außer J und K) als Eingabe die kleinste nicht negative Ganzzahl aus, die diesen Buchstaben in schriftlicher Form enthält. Angenommen, Zahlen enthalten niemals das Wort "und", so 101
ist "einhundertein", nicht "einhundertein". Nehmen wir an, die Amerikaner zählen kurz, also ist eine Million 10^6
und eine Milliarde 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 und K sind nicht Teil der Eingabespezifikation, daher ist Ihr Verhalten für sie undefiniert. Geben Sie bei einem der obigen Buchstaben die (Dezimal-) Zahl daneben aus. Sie können Eingaben in Klein- oder Großbuchstaben vornehmen, einige Eingaben müssen jedoch nicht in Kleinbuchstaben und andere in Großbuchstaben eingegeben werden.
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
quelle
Antworten:
JavaScript (Node.js) ,
78 75 7473 ByteProbieren Sie es online!
Wie?
Kommentiert
quelle
Ruby , 65 Bytes
Probieren Sie es online!
Verbesserungen inspiriert von GBs Kommentar.
Ruby , 70 Bytes
Probieren Sie es online!
quelle
i
war nützlich. Jetzt runter auf 65./// 125 Bytes
Probieren Sie es online!
Die Eingabe wird gemäß E / A-Meta an das Ende des Codes angehängt . Die Fußzeile im obigen TIO-Link testet alle Buchstaben gleichzeitig als einzelne durch Zeilenumbrüche getrennte Zeichenfolge. Der Code funktioniert jedoch auch einwandfrei, wenn ein einzelnes Zeichen eingegeben wird .
quelle
Wolfram Language (Mathematica) , 50 Byte
Die Buchstaben b, c, m, p und q werden aus Leistungsgründen beim Testen auf TIO übersprungen.
Probieren Sie es online!
quelle
Stax , 33 Bytes
Führen Sie es aus und debuggen Sie es
Verfahren:
[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]
mit codepoint in ein konstantes Array . (mit Umlauf)10
auf diese Potenz, ansonsten lasse es wie es ist.quelle
Excel, 85 Bytes
2 Golfbits:
1E15
) sparen26 bytes
.CHOOSE
wenn nichts vorgesehen ist0
, spart4 bytes
quelle
05AB1E , 36 Bytes
Port von @recursives Stax-Antwort .
Eingabe in Kleinbuchstaben.
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
Sehen Sie sich meinen Tipp 05AB1E an (Abschnitt Komprimieren großer Ganzzahlen und Komprimieren von Ganzzahllisten ), um zu verstehen, warum dies so
•—ßusδtθ}™-5„©‘öæH•
ist3133432551338094772548436198140408157771728287
und•—ßusδtθ}™-5„©‘öæH•57в
ist[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]
.quelle
Perl 5
-p
, 84 BytesProbieren Sie es online!
quelle
Python 3 , 103 Bytes
Probieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) ,
777468 ByteKommentiert
Probieren Sie es online!
quelle
Perl 6 , 67 Bytes
Probieren Sie es online!
Verwendet eine Nachschlagetabelle, in der eine negative Zahl das Negative des Exponenten bedeutet, andernfalls die Zahl selbst.
quelle
05AB1E , 32 Bytes
Probieren Sie es online!
quelle
'binary'
eingebaut, haha. xD Aber ich denke, manchmal kann es so nützlich sein. ;)Bash ,
129100 BytesProbieren Sie es online!
Probieren Sie es online!Wie es funktioniert:
$ A: Base64-codiertes "a" - "z": Zahlen unter 100 werden direkt gespeichert. Größere Zahlen werden als Anzahl der Nullen +30 codiert. (Beispiel: 1.000 = 33, 100 = 32 usw.)
Extrahieren Sie einen Buchstaben aus $ A an der in Argument $ 1 angegebenen Position (base64 decodiert, -10, um den Versatz von 'a' zu berücksichtigen). Base64 dekodiert dieses Zeichen und speichert es in c.
Wenn $ c größer als 30 ist, wird "1" mit $ c-30 Nullen aufgefüllt. Ansonsten drucke $ c.
quelle
Vorschlaghammer , 17 Bytes
Technisch gesehen ist dies 133 Bit lang, aber das macht diese 16,625 Bytes nicht wirklich, wie der Kompressor behauptet.
Dies entschlüsselt sich wahrscheinlich zu
(Ungefähr das Gleiche wie meine Mathematica-Antwort), obwohl ich sie kaum verschlüsselt habe (es sieht so aus, als ob mein PC Kompatibilitätsprobleme mit allem hat), also viel Glück beim erneuten Entschlüsseln. Ich habe möglicherweise einige Fehler bei der Verwendung des Encoders gemacht, seien Sie also vorsichtig.
quelle
Gelee , 36 Bytes
Probieren Sie es online!
Ein monadischer Link, der einen Kleinbuchstaben als Argument verwendet und eine Ganzzahl zurückgibt. Rückgabe
0
fürj
undk
.Erläuterung
quelle
Retina 0.8.2 , 89 Bytes
Probieren Sie es online! Link enthält Testfälle. Erläuterung:
Duplizieren Sie die Eingabe.
Ändern Sie die erste Kopie in die (erste) Ziffer des entsprechenden Ergebnisses.
Wenn die Zahl ein Vielfaches von 3 nachgestellten Nullen hat, erhalten Sie dieses Vielfache jetzt.
Und tatsächlich konvertieren Sie es in die entsprechende Anzahl von nachgestellten Nullen. (Beachten Sie, dass dies
*3*0
in Retina 1 zu vereinfachen wäre .)Repariere es
d
.Fix up
l
undy
und entfernen Sie alle restlichen Buchstaben.quelle
PHP , 104 Bytes
Probieren Sie es online!
Ich habe eine Zeichenfolge
^FX]0483500GC10UL0624526P0
, die ein einzelnes Zeichen für jeden Eingabebuchstaben von "a" bis "z" enthält. Ich extrahiere dieses Zeichen basierend auf der Eingabe und speichere es in$a
. Wenn das Zeichen keine Ziffer ist, wird sein ASCII-Code mod 30 in gespeichert$b
.Wenn
$a
es sich um eine Ziffer handelt, wird dieselbe Ziffer gedruckt. Dies wird für alle Eingaben verwendet, für die eine Ausgabe zwischen 0 und 9 erforderlich ist (z. B. "e", "f" usw.).Andernfalls, wenn
$b
20 oder 11, wird dieselbe Nummer gedruckt, dies wird für "l" und "y" verwendet.Andernfalls wird die
$b
mit "0" aufgefüllte Ziffer "1" gedruckt. Für die Eingabe von "a" ist das Zeichen beispielsweise "^" mit einem ASCII-Code von 94. Die94 % 30 = 4
mit "0" aufgefüllte "1" ergibt "1000".quelle