Dada una sola letra de la A a la Z (excepto J y K) como entrada, genera el número entero no negativo más pequeño que contiene esa letra en su forma escrita. Suponga que los números nunca contienen la palabra "y", así 101
es "ciento uno", no "ciento uno". Suponga el recuento estadounidense (a pequeña escala), por lo que un millón es 10^6
y mil millones es 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 y K no son parte de la especificación de entrada, por lo que su comportamiento no está definido para ellos. Dada una de las letras anteriores, muestra el número (decimal) al lado. Puede tomar la entrada en minúsculas o mayúsculas, pero no puede requerir que algunas entradas sean minúsculas y otras mayúsculas.
Este es el código de golf , por lo que gana la respuesta más corta en bytes.
code-golf
number
kolmogorov-complexity
Stephen
fuente
fuente
Respuestas:
JavaScript (Node.js) ,
78 75 7473 bytesPruébalo en línea!
¿Cómo?
Cada valor está codificado con un solo carácter imprimible. Usamos el rango ASCII para codificar y el rango para codificar .[32..52] n−32 [53..80] 10n−53
Comentado
fuente
Ruby , 65 bytes
Pruébalo en línea!
Mejoras inspiradas en el comentario de GB.
Ruby , 70 bytes
Pruébalo en línea!
fuente
i
fue útil. Ahora baja a 65./// , 125 bytes
Pruébalo en línea!
De entrada se añade al final del código, como por I / O meta . El pie de página en el enlace TIO anterior prueba todas las letras simultáneamente, como una sola cadena delimitada por una nueva línea, pero el código también funciona bien al ingresar un solo carácter .
fuente
Wolfram Language (Mathematica) , 50 bytes
Las letras b, c, m, p y q se omiten por razones de rendimiento al realizar pruebas en TIO.
Pruébalo en línea!
fuente
Stax , 33 bytes
Ejecutar y depurarlo
Procedimiento:
[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]
utilizando codepoint. (con envoltura)10
a ese poder, de lo contrario, déjelo como está.fuente
Excel, 85 bytes
2 bits de golf:
1E15
) guarda26 bytes
.CHOOSE
cuando no se proporciona nada es0
, guarda4 bytes
fuente
05AB1E , 36 bytes
Puerto de la respuesta Stax de @recursive .
Entrada en minúsculas.
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
Vea esta sugerencia mía 05AB1E (sección ¿Cómo comprimir enteros grandes? Y ¿Cómo comprimir listas enteras? ) Para comprender por qué
•—ßusδtθ}™-5„©‘öæH•
es3133432551338094772548436198140408157771728287
y•—ßusδtθ}™-5„©‘öæH•57в
es[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]
.fuente
Perl 5
-p
, 84 bytesPruébalo en línea!
fuente
Python 3 , 103 bytes
Pruébalo en línea!
fuente
C # (compilador interactivo de Visual C #) ,
777468 bytesComentado
Pruébalo en línea!
fuente
Perl 6 , 67 bytes
Pruébalo en línea!
Utiliza una tabla de búsqueda donde un número negativo significa que es el negativo del exponente; de lo contrario, es el número mismo.
fuente
05AB1E , 32 bytes
Pruébalo en línea!
fuente
'binary'
, jaja. xD Pero supongo que a veces puede ser útil así. ;)Bash ,
129100bytesPruébalo en línea!
Pruébalo en línea!Cómo funciona:
$ A: Base64 codificado "a" - "z": los números inferiores a 100 se almacenan directamente. Los números más grandes se codifican como el número de ceros +30. (ej .: 1,000 = 33, 100 = 32, etc.)
Extraiga una letra de $ A en la posición especificada en el argumento $ 1 (base64 decodificada, -10 para tener en cuenta el desplazamiento de 'a'). Base64 decodifica ese personaje y lo almacena en c.
Si $ c es mayor que 30, imprima "1" rellenado con ceros $ c-30. De lo contrario, imprima $ c.
fuente
Almádena , 17 bytes
Técnicamente, esto tiene 133 bits de largo, pero eso realmente no genera 16.625 bytes, como afirma el compresor.
Esto probablemente decodifica a
(aproximadamente lo mismo que mi respuesta de Mathematica), aunque apenas lo codifiqué (parece que mi PC tiene problemas de compatibilidad con todo), así que buena suerte decodificándolo nuevamente para verificarlo. Podría haber cometido algunos errores al usar el codificador, así que tenga cuidado.
fuente
Jalea , 36 bytes
Pruébalo en línea!
Un enlace monádico que toma una letra minúscula como argumento y devuelve un entero. Devoluciones
0
paraj
yk
.Explicación
fuente
Retina 0.8.2 , 89 bytes
Pruébalo en línea! El enlace incluye casos de prueba. Explicación:
Duplicar la entrada.
Cambie la primera copia al (primer) dígito del resultado relevante.
Si el número tiene un múltiplo de 3 ceros finales, obtén ese múltiplo ahora.
Y en realidad conviértalo en el número relevante de ceros finales. (Tenga en cuenta que esto se simplificaría
*3*0
en Retina 1.)Arreglar
d
.Arreglar
l
yy
y eliminar cualquier resto de los caracteres.fuente
PHP , 104 bytes
Pruébalo en línea!
Tengo una cadena
^FX]0483500GC10UL0624526P0
que contiene un solo carácter para cada letra de entrada de "a" a "z". Extraigo este carácter en función de la entrada y lo almaceno$a
. Si el carácter no es un dígito, su código ASCII mod 30 se almacenará en$b
.Si
$a
es un dígito, se imprime el mismo dígito, esto se usa para cualquier entrada que necesite una salida entre 0 y 9 (como "e", "f", etc.).De lo contrario, si
$b
es 20 u 11, se imprime el mismo número, esto se usa para "l" e "y".De lo contrario,
$b
se imprime el dígito "1" rellenado con "0". Por ejemplo, para la entrada de "a", el carácter es "^" que tiene un código ASCII de 94.94 % 30 = 4
y "1" rellenado a 4 con "0" s será "1000".fuente