InstruçÔes
SequĂȘncia autorreferencial
Existem vĂĄrias maneiras de gerar uma sequĂȘncia autorreferencial. Um muito comum (a <a href="https://rosettacode.org/wiki/Look-and-say_sequence" target="_blank" rel="noopener noreferrer nofollow">sequĂȘncia Look-and-say</a>) Ă© começar com um nĂșmero inteiro positivo, depois gerar o prĂłximo termo concatenando grupos enumerados de dĂgitos adjacentes iguais:
<pre>0, 10, 1110, 3110, 132110, 1113122110, 311311222110 ...</pre>
Os termos gerados crescem em extensĂŁo geometricamente e nunca convergem.
Outra maneira de gerar uma sequĂȘncia autorreferencial Ă© resumir o termo anterior.
Conte quantos algarismos semelhantes existem de cada um dos algarismos, entĂŁo concatene a soma e o algarismo de cada um dos dĂgitos enumerados ordenados. Observe que os primeiros cinco termos sĂŁo os mesmos que para a sequĂȘncia anterior.
<pre>0, 10, 1110, 3110, 132110, 13123110, 23124110 ...</pre>
Ordene os dĂgitos dos maiores para os menores. NĂŁo inclua contagens de dĂgitos que nĂŁo apareçam no termo anterior.
Dependendo do valor da seed, sĂ©ries geradas dessa forma sempre convergem para um valor estĂĄvel ou para um padrĂŁo cĂclico curto. (Para nossos propĂłsitos, convergir significa que um elemento corresponde a um elemento visto anteriormente.) A sequĂȘncia mostrada, com um valor de seed de 0, converge para um valor estĂĄvel de 1433223110 apĂłs 11 iteraçÔes. O valor de seed que tem a conversĂŁo mais rĂĄpida Ă© 22. Ele se estabiliza apĂłs o primeiro elemento. (O prĂłximo elemento Ă© 22, que jĂĄ foi visto antes.)
O que fazer:
Escreva uma função que receba o valor de seed como parĂąmetro, gere uma sequĂȘncia autorreferencial atĂ© convergir, e a retorne como um array.
Critérios de Aceitação:
Critérios de Aceitação:
Testes:
- `selfReferential` deve ser uma função.
- `selfReferential(40)` deve retornar um array.
- `selfReferential(40)` deve retornar `["40", "1410", "142110", "14123110", "1413124110", "2413125110", "151413224110", "152413225110", "251413324110", "152423224110", "152413423110"]`.
- `selfReferential(132110)` deve retornar `["132110", "13123110", "23124110", "1413223110", "1423224110", "2413323110", "1433223110"]`.
- `selfReferential(132211)` deve retornar `["132211", "132231", "232221", "134211", "14131231", "14231241", "24132231", "14233221"]`.
- `selfReferential(1413223110)` deve retornar `["1413223110", "1423224110", "2413323110", "1433223110"]`.
- `selfReferential(251413126110)` deve retornar `["251413126110", "16151413225110", "16251413226110", "26151413325110", "16251423225110", "16251413424110", "16153413225110"]`.
Console