Dada una cadena, que consiste en un prefijo y luego "ilión", convierte este número en forma estándar.
Por ejemplo:
"million" -> 10^6
"trillion" -> 10^12
"quattuordecillion" -> 10^45
El programa debe ser capaz de manejar la entrada que va hasta Centillion, que es 10 ^ 303. Aquí se puede encontrar una lista de nombres y sus valores de forma estándar ; tenga en cuenta que esto proporciona valores por cada incremento de 10 ^ 3 hasta 10 ^ 63, pero luego los proporciona en incrementos de 10 ^ 30, sin embargo, el patrón es bastante sencillo.
El programa debe manejar los 100 casos (incluso los que no se proporcionan explícitamente en el sitio web proporcionado). Aquí hay algunos ejemplos de esto:
"sexvigintillion" -> 10^81
"unnonagintillion" -> 10^276
"octotrigintillion" -> 10^117
La entrada se puede proporcionar a través de STDIN, argumento de función o codificado como una cadena.
Este es el código de golf, ¡el código más corto gana!
fuente
Respuestas:
Python 2 (
384368365348347 bytes)(La
if
línea está sangrada con una sola pestaña y el resto con espacios individuales).Aquí
c('million') == 10**6
tiene que haber un caso especial porque'novem'
también termina en'm'
.Ejemplos:
Gracias a Falko por ofuscarlo hasta 350 bytes.
Para practicar intenté reescribir esto como una línea usando lambdas. Son
404398390384380379 bytes:fuente
return'10^'+str(3*k)
solo serían 4 bytes más.a
yb
en la función como argumentos de palabra clave.1000**k
es más corto que10**(3*k)
. Incrementark
en3*d[p]
también es igualmente corto.if'm'==s:k=6;d=[]
lugar de una segundareturn
declaración larga .JS (ES6),
292270Entiende solo los números escritos en la lista dada. El OP no está claro sobre los demás.
Ejemplo:
fuente
split(0)
conmatch(/[A-Z][a-z]*/g)
el uso de expresiones regulares para que coincida con cada cadena.=>
.C, 235
Maneja los 100 casos. El programa usa stdin y stdout.
¿Quién necesita expresiones regulares para la división de casos de camellos?
Ejemplo
fuente
*U<95 ?
) y todas las nuevas líneas?Clojure,
381377 bytesEjemplo:
(c "Septuagintillion") ;; 1.0E213
fuente
Haskell, 204 bytes (+9 para cadena formateada)
En GHCi:
Reemplazar
10^(
con"10^"++(show.
agrega otros 9 bytes:En GHCi:
Editar: tuve que corregir
"quinquagintillion"
cuál contiene"qua"
.fuente