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:

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