Este desafío está muy inspirado por lo que @Mego creó con sus números Holy y Holier , muchas gracias a él y sus juegos de palabras.
Los números sagrados son números compuestos solo por los dígitos con agujeros , que son:
04689
Los números con al menos un dígito impío se consideran impíos. Los dígitos impíos son malos por definición, pero estar cerca de los dígitos sagrados los ayuda a volverse neutrales. Por lo tanto, cuanto más cerca estén, menos profano (1 cuando está adyacente).
La impiedad de un número es la suma de la impiedad de sus dígitos, un número compuesto solo por un número impío tiene una impiedad infinita.
Number :8 5 5 8 7
Digital Unholiness:0+1+1+0+1
Total Unholiness :3
Number :0 1 7 5 5 2 8 5 7
Digital Unholiness:0+1+2+3+2+1+0+1+2
Total Unholiness :12
Number :1 5 7 3 2 1
Digital Unholiness:∞+∞+∞+∞+∞+∞
Total Unholiness :∞
Number :0 4 6 8 9
Digital Unholiness:0+0+0+0+0
Total Unholiness :0
Tu tarea
Tiene que escribir un programa o función que tome un entero positivo o una cadena compuesta solo de dígitos como entrada, y genere su impiedad. Si elige usar un número entero como entrada, puede suponer que nunca tendrá un encabezado, 0
ya que su idioma puede descartarlo.
En caso de impiedad infinita, puede elegir entre tres salidas
- El caracter
∞
(3 bytes) - Salida infinita que contiene al menos 1 dígito distinto de cero, pero solo dígitos.
- Un
Infinity
valor incorporado .
Este es el código de golf, por lo que gana el código más corto en bytes, ¡buena suerte!
Infinity
legal devolver un valor incorporado ?0
dígito sagrado, sino que modificaré la publicación para permitir la respuesta en función de los números 0 no iniciales.Respuestas:
MATL ,
2524 bytesPruébalo en línea!
La entrada es una cadena. En la salida, el infinito se muestra de forma nativa como
Inf
.Explicación
fuente
Python (3),
137131 bytesResultados
fuente
Pyth,
31292725 bytesPruébelo en línea: Demostración o conjunto de pruebas
Para cada dígito calculo las distancias a cada número. Una distancia es infinita, si el segundo dígito no es sagrado. De estas listas tomo la distancia mínima y la resumen.
Explicación:
fuente
JavaScript (ES6), 93 bytes
Si
Infinity
no es un infinito legal, entonces agregue 13 bytes para==1/0?'∞':r
.fuente