Me di cuenta de que cierto juego tenía un contador de vida peculiar, que en lugar de detenerse 999, ganó un nuevo dígito: el siguiente número era corona cien o 👑00. Después 👑99vino la corona cien coronas ( 👑👑0) y el último número, después 👑👑9, fue la corona cien coronas o 👑👑👑, que sería 1110 en decimal.
Su tarea es escribir un programa o una función que genere este contador.
Dado un entero del rango [0,1110](incluido en ambos extremos), genera una cadena de tres caracteres donde
- cada personaje es de la lista
0123456789👑 - la corona (👑) solo puede aparecer como el carácter más a la izquierda o cuando hay una corona a la izquierda
- cuando este número se lee como un número decimal pero con la corona contando como
10, se obtiene el número original
Casos de prueba
0 → "000"
15 → "015"
179 → "179"
999 → "999"
1000 → "👑00"
1097 → "👑97"
1100 → "👑👑0"
1108 → "👑👑8"
1110 → "👑👑👑"
Puede usar cualquier carácter no decimal en lugar de la corona. Para fomentar una impresión bonita, el carácter de la corona (secuencia de bytes UTF8 "\ 240 \ 159 \ 145 \ 145") cuenta como un byte en lugar de cuatro. Su programa no tiene que funcionar para números fuera del rango válido.
Este es el código de golf , por lo que gana la respuesta más corta, medida en bytes.

Respuestas:
05AB1E ,
2018 bytesUtiliza espacios para coronas.
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
JavaScript (Node.js) , 50 bytes
Pruébalo en línea!
TIO se basó en la respuesta de Arnauld. Mostrar 👑 como
#.fuente
JavaScript (ES6),
62 4644 bytesGuardado 2 bytes gracias a @nwellnhof
Emite coronas como
xcaracteres.Pruébalo en línea!
¿Cómo?
/1+0/xxx. Finalmente, devolvemos los 3 caracteres finales.Ejemplos:
fuente
s.replace(/./g,`#`)está ordenado ... lo tuveArray(s.length+1).join`#`, ¡y mi expresión regular también fue más larga! Buen trabajo, +1Lenguaje de programación Shakespeare ,
763692690689683 bytesPruébalo en línea!
Utiliza en
" "lugar de coronas. A costa de 4 bytes más, esto podría modificarse para mostrar un carácter "visible" en su lugar.Explicación:
fuente
Python 2 , 53 bytes
Me quito el sombrero ante Arnauld por -22 bytes . Sin embargo, la recursión aún gana.
Pruébalo en línea!
Python 2 , 51 bytes
Esto implementa el método recursivo de tsh . Guardado 2 bytes gracias a los ovs .
Pruébalo en línea!
fuente
1+0. De ahí esta versión de 53 bytes .Python 2 , 52 bytes
Pruébalo en línea!
fuente
Retina 0.8.2 , 41 bytes
Pruébalo en línea! Utiliza
#s en lugar de👑s. El enlace incluye casos de prueba. Explicación:Rellene números de 1 y 2 dígitos a tres dígitos.
Cambie los primeros
1s de números de 4 dígitos a#sy elimine el siguiente0.fuente
Jalea , 19 bytes - 0 = 19
Un programa completo que imprime el resultado utilizando un carácter de espacio como corona.
(Como enlace monádico, se obtiene una lista mixta de dígitos enteros y caracteres espaciales)
Pruébalo en línea! O vea el conjunto de pruebas .
... tal vez una implementación recursiva sea más corta.
¿Cómo?
fuente
Python 2 , 40 bytes
Pruébalo en línea!
Implementa una idea similar a la respuesta basada en expresiones regulares del Sr. Xcoder pero sin una expresión regular. Eliminamos los primeros 1
10000+ny el siguiente carácter, luego rellenamos con espacios a la longitud 3. El resultado es similar a la solución de ovs usandolstrippero sin necesidad de dos casos.fuente
Limpio , 87 bytes
No emite coronas (usos
c).Pruébalo en línea!
Limpiar , 99-3 = 96 bytes
Este tiene coronas.
Pruébalo en línea!
fuente
Japt, 20 bytes
Un puerto ingenuo (¡y un poco borracho!) De la solución de Arnauld. Usos
"para corona.Intentalo
fuente
Java 10,
8483 bytesPuerto de @tsh 'C comentario .
Usos
.lugar de coronas.Pruébalo en línea.
Enfoque alternativo (84 (87-3) bytes):
Puerto de la respuesta de @tsh 'JavaScript .
Pruébalo en línea.
fuente
APL (Dyalog Unicode) , 32 bytes
Pruébalo en línea!
Función directa de prefijo.
Port of @ tsh's JS Answer .
Cómo:
fuente
PHP, 71 bytes
estampados
Cpara la corona. Ejecutar como tubería con-nRo probarlo en línea .fuente
Haskell , 48 bytes
Pruébalo en línea!
fuente
C,
8458 bytes¡Gracias a @tsh por guardar 25 bytes y gracias a @ceilingcat por guardar un byte!
Pruébalo en línea!
fuente
f(n,p){for(p=1000;p/=10;)n-=putchar(n/p>9?46:48+n/p)%12*p;}sed , 39
48 bytes, pero la puntuación es 39, ya que cada 👑 cuenta como 1.
Pruébalo en línea!
fuente
Perl 6 , 38 - 9 = 29 bytes
-2 bytes gracias a Jo King
Pruébalo en línea!
Inspirado en la solución JavaScript de Arnauld.
fuente
Limpio , 96 bytes
Creo que Super Mario 3D Land, New Super Mao Bros.2 y Super Mario 3D World tienen este contador de vida.
Estoy de acuerdo con Clean .
fuente