Dado um número inteiro positivo n
( Exemplo:n=1234444999
)
- Separe em execuções consecutivas de dígitos:
[1, 2, 3, 4444, 999]
- Pegue o produto digital de cada execução.
[1, 2, 3, 4*4*4*4, 9*9*9] = [1, 2, 3, 256, 729]
- Soma isso ...
- 991
- Repita até que isso converja para um único número:
- 1234444999
- 991
- 82
- 10
- 1
- Retorna o último número.
Casos de teste
BASE CASES:
0 = 0
...
9 = 9
OTHER CASES:
1234444999 = 1
222222222222222 = 8
111222333444555666777888999000 = 9
11122233344455566677788899 = 8
1112223334445 = 6
14536 = 1
99 = 9
Exemplo solicitado:
334455553666333
9+16+625+3+216+27
896
8+9+6
23
2+3
**5**
Ganhando?
É código-golfe , o menor número de bytes é o vencedor.
11122233344455566677788899
.33445555666333
:?Respostas:
05AB1E ,
765 bytesAgradecemos a Emigna por salvar um byte!
Usa a codificação 05AB1E . Experimente online!
fonte
gF
porv
.Geléia, 9 bytes
Experimente online
Veja como funciona:
fonte
€
.Œg
é inconsistente quando há apenas um grupo. Qual é o raciocínio por trás disso?Mathematica,
5542 bytes-13 bytes de @JungHwan min . Thanx!
caso alguém queira usar isso como um gerador de dígitos aleatórios,
eis a contagem dos primeiros 100.000 números
fonte
Japonês ,
171513 bytesTeste online! Recebe a entrada como uma sequência.
Ainda não está satisfeito com esta resposta ...
Explicação
fonte
x_×
combinado comI'm unsatisfied
me fez rir. Obrigado ;).ß
poderia ter sido o caminho a percorrer aqui. Eu estava errado! (Pelo menos a metade 5 da manhã', sentou-se no autocarro para o aeroporto I foi!)Python 3 , 96 bytes
Experimente online!
fonte
Braquilog , 8 bytes
Experimente online!
Explicação
fonte
Pitão, 11 bytes
Experimente online. Suíte de teste.
fonte
PHP , 113 bytes
Experimente online!
fonte
Casca , 8 bytes
Pega e retorna um número inteiro. Experimente online!
Explicação
Ter um built-in para a base 10 dígitos seria bom ...
fonte
JavaScript (ES6),
77736765 bytesGuardado 2 bytes graças a @CraigAyre
Quão?
A entrada s é transformada em uma expressão aritmética com:
Por exemplo,
1234444999
torna-se+1+2+3+4*4*4*4+9*9*9
.Avaliamos essa expressão e fazemos uma chamada recursiva com o resultado até que se reduza a um único dígito decimal.
Casos de teste
Mostrar snippet de código
fonte
f=s=>s>9?f(''+eval(s.replace(/(.)\1*/g,s=>'+'+[...s].join`*`))):s
CJam , 22 bytes
Experimente online!
fonte
Haskell ,
1037069 bytesExperimente online!
fonte
until(<10)
. Tambémmap(read.pure)
pode ser movido antesshow
, o que salva parênteses.$
vez dos parênteses externos.R ,
114104 byteslê de stdin; retorna a resposta como uma sequência.
Experimente online!
fonte
paste
vez deas.character
. Os ex-coage sua entradacharacter
tipo ;-)MATL, 11 bytes
Experimente no MATL Online
Explicação
fonte
Perl 5 , 50 bytes
49 bytes de código +
-p
sinalizador.Experimente online!
fonte
R,
9796 bytesAbordagem um pouco diferente do que a outra resposta usando R .
Esta resposta faz uso da
rle
função, qualcompute[s] the lengths and values of runs of equal values in a vector
.-1 bytes graças a @ Giuseppe!
fonte
**
é equivalente a^
Braingolf, 25 bytes
Adicionarei um link do TIO assim que o Dennis puxar a versão mais recente, pois o uso de operadores gananciosos dentro de
(...)
loops está quebrado no TIOExplicação
fonte
Japonês , 19 bytes
Experimente online!
Explicação:
fonte