No revisé el sandbox antes de publicar este desafío, parece que este desafío fue propuesto por Cᴏɴᴏʀ O'Bʀɪᴇɴ .
Dada una entrada entera, escriba un programa que imprima el acertijo "cuatro es un número mágico"
- Cuatro es el número mágico
- Cinco es cuatro y cuatro es el número mágico
- Seis es tres y tres es cinco y cinco es cuatro y cuatro es el número mágico
- Once es seis y seis es tres y tres es cinco y cinco es cuatro y cuatro es el número mágico
- Quinientos es once y once es seis y seis es tres y tres es cinco y cinco es cuatro y cuatro es el número mágico
Si ya conoce el enigma, o es demasiado vago para resolverlo, ansioso por descubrir cuál es el enigma, aquí hay una explicación
El siguiente número es el número de letras en el número anterior. Entonces, por ejemplo, cinco tiene cuatro letras, entonces el siguiente número es cuatro .
seis tiene tres letras, entonces el siguiente número es 3 , y tres tiene cinco letras, entonces el siguiente número es 5 y cinco tiene cuatro letras, entonces el siguiente número es 4
La razón por la que el acertijo termina en cuatro es porque cuatro tiene cuatro letras , y cuatro es cuatro y cuatro es cuatro y cuatro es cuatro ... (cuatro es el número mágico)
Casos de prueba
0 =>
Zero is four and four is the magic number
1 =>
One is three and three is five and five is four and four is the magic number
2 =>
Two is three and three is five and five is four and four is the magic number
3 =>
Three is five and five is four and four is the magic number
4 =>
Four is the magic number
5 =>
Five is four and four is the magic number
6 =>
Six is three and three is five and five is four and four is the magic number
7 =>
Seven is five and five is four and four is the magic number
8 =>
Eight is five and five is four and four is the magic number
9 =>
Nine is four and four is the magic number
10 =>
Ten is three and three is five and five is four and four is the magic number
17 =>
Seventeen is nine and nine is four and four is the magic number
100 =>
One Hundred is ten and ten is three and three is five and five is four and four is the magic number
142 =>
One Hundred Forty Two is eighteen and eighteen is eight and eight is five and five is four and four is the magic number
1,000 =>
One Thousand is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
1,642 =>
One Thousand Six Hundred Forty Two is twenty nine and twenty nine is ten and ten is three and three is five and five is four and four is the magic number
70,000 =>
Seventy Thousand is fifteen and fifteen is seven and seven is five and five is four and four is the magic number
131,072 =>
One Hundred Thirty One Thousand Seventy Two is thirty seven and thirty seven is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
999,999 =>
Nine Hundred Ninety Nine Thousand Nine Hundred Ninety Nine is fifty and fifty is five and five is four and four is the magic number
Reglas
- La entrada puede tomarse de
STDIN
o como argumento para una función - La entrada será un número positivo entre 0 y 999,999
- La entrada solo contendrá números (seguirá la expresión regular
^[0-9]+$
) - La entrada puede tomarse como un entero o una cadena
- Cuando se convierte en una cadena de palabras, los espacios y guiones no deben incluirse en el recuento (100 [Cien] son 10 caracteres, no 11. 1,742 [Mil setecientos cuarenta y dos] son 31 caracteres, no 36)
- Cuando se convierte en una cadena, 100 debe ser Cien, no Cien o Cien, 1000 debe ser Mil, no Mil o Mil.
- Cuando se convierte en una cadena 142 debe ser Ciento cuarenta y dos, no Ciento cuarenta y dos
- La salida no distingue entre mayúsculas y minúsculas , y debe seguir el formato " N es K y K es M y M es ... y cuatro es el número mágico" (a menos que la entrada sea 4, en cuyo caso la salida debería ser simplemente "cuatro es el número mágico ")
- La salida puede usar números en lugar de letras ("5 es 4 y 4 es el número mágico" en lugar de "cinco es cuatro y cuatro es el número mágico") siempre que su programa sea siempre consistente
- La salida puede ser el valor de retorno de una función o imprimirse en
STDOUT
- Se aplican lagunas estándar
- Este es el código de golf , por lo que gana el programa más corto en bytes. ¡Buena suerte!
Prima
-30 bytes si el programa funciona cuando la entrada está entre -999,999 y 999,999.
Los números negativos, cuando se convierten en palabras, solo tienen "negativo" delante de ellos. Por ejemplo -4
es "Negativo cuatro", Negativo cuatro es doce y doce es seis y seis es tres y tres es cinco y cinco es cuatro y cuatro es el número mágico
-150 bytes si el programa no utiliza ninguna función incorporada para generar la representación de cadena del número
Tabla de clasificación
Este es un fragmento de pila que genera una tabla de clasificación y una descripción general de los ganadores por idioma.
Para asegurarse de que su respuesta aparezca, comience su respuesta con un título usando la siguiente plantilla de Markdown
## Language Name, N bytes
Donde N es el tamaño, en bytes, de su envío
Si desea incluir varios números en su encabezado (por ejemplo, tachar los puntajes antiguos o incluir marcas en el recuento de bytes), solo asegúrese de que el puntaje real sea el último número en su encabezado
## Language Name, <s>K</s> X + 2 = N bytes