Dado un número entero positivo n
( Ejemplo:n=1234444999
)
- Separar en series de dígitos consecutivos:
[1, 2, 3, 4444, 999]
- Tome el producto digital de cada carrera.
[1, 2, 3, 4*4*4*4, 9*9*9] = [1, 2, 3, 256, 729]
- Sumalo ...
- 991
- Repita hasta que esto converja a un solo número:
- 1234444999
- 991
- 82
- 10
- 1
- Devuelve el último número.
Casos de prueba
BASE CASES:
0 = 0
...
9 = 9
OTHER CASES:
1234444999 = 1
222222222222222 = 8
111222333444555666777888999000 = 9
11122233344455566677788899 = 8
1112223334445 = 6
14536 = 1
99 = 9
Ejemplo solicitado:
334455553666333
9+16+625+3+216+27
896
8+9+6
23
2+3
**5**
¿Victorioso?
Es el código de golf , el conteo de bytes más bajo es el ganador.
11122233344455566677788899
.33445555666333
:?Respuestas:
05AB1E ,
765 bytes¡Gracias a Emigna por guardar un byte!
Utiliza la codificación 05AB1E . Pruébalo en línea!
fuente
gF
conv
.Jalea, 9 bytes
Pruébalo en línea
Así es como funciona:
fuente
€
.Œg
es inconsistente cuando solo hay un grupo. ¿Cuál es el razonamiento detrás de eso?Mathematica,
5542 bytes-13 bytes de @JungHwan Min . Gracias!
en caso de que alguien quiera usar esto como un generador de dígitos aleatorios,
aquí está el recuento de los primeros 100.000 números
fuente
Japt ,
171513 bytes¡Pruébalo en línea! Toma la entrada como una cadena.
Todavía no estoy satisfecho con esta respuesta ...
Explicación
fuente
x_×
combinación conI'm unsatisfied
me hizo reír. Gracias ;).ß
podría haber sido el camino a seguir aquí. ¡Estaba equivocado! (¡Al menos a las cinco y media de la mañana, me senté en el autobús al aeropuerto que estaba!)Python 3 , 96 bytes
Pruébalo en línea!
fuente
Brachylog , 8 bytes
Pruébalo en línea!
Explicación
fuente
Pyth, 11 bytes
Pruébalo en línea. Banco de pruebas.
fuente
PHP , 113 bytes
Pruébalo en línea!
fuente
Casco , 8 bytes
Toma y devuelve un entero. Pruébalo en línea!
Explicación
Tener un incorporado para 10 dígitos base sería bueno ...
fuente
JavaScript (ES6),
77736765 bytesGuardado 2 bytes gracias a @CraigAyre
¿Cómo?
La entrada s se transforma en una expresión aritmética con:
Por ejemplo, se
1234444999
convierte+1+2+3+4*4*4*4+9*9*9
.Evaluamos esta expresión y hacemos una llamada recursiva con el resultado hasta que se reduzca a un solo dígito decimal.
Casos de prueba
Mostrar fragmento de código
fuente
f=s=>s>9?f(''+eval(s.replace(/(.)\1*/g,s=>'+'+[...s].join`*`))):s
CJam, 22 bytes
Try it online!
fuente
Haskell,
1037069 bytesTry it online!
fuente
until(<10)
. Also themap(read.pure)
can be moved beforeshow
, which saves parentheses.$
instead of the outer parentheses.R,
114104 bytesreads from stdin; returns the answer as a string.
Try it online!
fuente
paste
lugar deas.character
. El primero coacciona su entrada encharacter
tipo ;-)MATL, 11 bytes
Pruébalo en MATL Online
Explicación
fuente
Perl 5, 50 bytes
49 bytes de código +
-p
bandera.Pruébalo en línea!
fuente
R,
9796 bytesEnfoque ligeramente diferente a la otra respuesta usando R.
Esta respuesta hace uso de la
rle
función, quecompute[s] the lengths and values of runs of equal values in a vector
.-1 bytes gracias a @Giuseppe!
fuente
**
es equivalente a^
Braingolf, 25 bytes
Agregaré un enlace TIO una vez que haga que Dennis obtenga la última versión, ya que el uso de operadores codiciosos dentro de los
(...)
bucles está actualmente roto en TIOExplicación
fuente
Japt , 19 bytes
Pruébalo en línea!
Explicación:
fuente