Vamos definir a função a nos números naturais , escritos como base 10 dígitos , da seguinte maneira:
Contanto que haja dígitos adjacentes iguais , substitua-os pela soma da esquerda para a direita. Se houver esses dígitos, repita o mesmo procedimento.
Em outras palavras, em cada iteração, tomamos avidamente todos os pares de dígitos adjacentes iguais e os substituímos por sua soma ao mesmo tempo (usando o par mais à esquerda, se eles se sobrepõem).
Exemplo
Vamos considerar por exemplo:
- Os primeiros dígitos adjacentes iguais são os dois
- Então, nós os substituímos por que nos dá
- Como ainda estamos no primeiro percurso da esquerda para a direita e ainda havia dois s, precisamos primeiro substituí-los
- Então obtemos
- Algo mudou, então precisamos fazer outra iteração
- Mas como não existem esses dígitos, paramos
Portanto, o número nessa sequência é .
Desafio
Os primeiros 200 termos são:
0,1,2,3,4,5,6,7,8,9,10,2,12,13,14,15,16,17,18,19,20,21,4,23,24,25,26,27,28,29,30,31,32,6,34,35,36,37,38,39,40,41,42,43,8,45,46,47,48,49,50,51,52,53,54,10,56,57,58,59,60,61,62,63,64,65,12,67,68,69,70,71,72,73,74,75,76,14,78,79,80,81,82,83,84,85,86,87,16,89,90,91,92,93,94,95,96,97,98,18,10,101,102,103,104,105,106,107,108,109,20,21,4,23,24,25,26,27,28,29,120,121,14,123,124,125,126,127,128,129,130,131,132,16,134,135,136,137,138,139,140,141,142,143,18,145,146,147,148,149,150,151,152,153,154,20,156,157,158,159,160,161,162,163,164,165,4,167,168,169,170,171,172,173,174,175,176,24,178,179,180,181,182,183,184,185,186,187,26,189,190,191,192,193,194,195,196,197,198,28
Sua tarefa é gerar essa sequência, seja
- dado , retorne o número nessa sequência,
- dado , retorne os primeiros números nessa sequência
- ou gere a sequência indefinidamente.
Você pode escolher seu envio para usar indexação ou , mas especifique qual.
Casos de teste
Você pode usar os termos acima, mas aqui estão alguns maiores:
222 -> 42
1633 -> 4
4488 -> 816
15519 -> 2019
19988 -> 2816
99999 -> 18189
119988 -> 21816
100001 -> 101
999999 -> 181818