Descrição do Desafio
Tivemos alguns desafios envolvendo a sequência de dizer e dizer . Lembrete rápido:
- A sequência começa com
1
, - Os termos subsequentes dessa sequência são gerados pela enumeração de cada grupo de dígitos repetidos no termo anterior,
Portanto, os primeiros termos são:
1 "one"
11 "one one" (we look at the previous term)
21 "two ones"
1211 "one two, one one"
111221 "one one, one two, two ones"
312211 "three ones, two twos, one one"
Agora vamos fazer a mesma coisa, mas use algarismos romanos . Começamos com I
e seguimos as mesmas regras (em vez disso, aplicamos a regra de contagem de dígitos aos caracteres, então lemos IVX
como em one one, one five, one ten
vez de one four, one ten
ou de outra maneira):
I "one"
II "one one"
III "two ones" = "II" + "I"
IIII "three ones" = "III" + "I"
IVI "four ones" = "IV" + "I"
IIIVII "one one, one five, one one"
IIIIIVIII "three ones, one five, two ones" = ("III" + "I") + ("I" + "V") + ("II" + "I")
Dado um número inteiro positivo N
:
- Emita os primeiros
N
números desta sequência (qualquer separador razoável é bom, bem como["I", "II", "III", ...]
- Saída
N
th termo desta sequência (pode ser indexado 0).
Lembre-se de tornar seu código o mais curto possível, pois esse é um desafio para o código-golfe !
EDIT: Eu acredito que sempre existe uma maneira padrão / preferida de expressar números inteiros como algarismos romanos (como 95
-> em XCV
vez de VC
). Alguns conversores de números romanos que encontrei on-line corroboram minha opinião. Em caso de dúvida, use um conversor on-line , pois listar todos os possíveis casos extremos e regras específicas para escrever números romanos não é o objetivo desse desafio.
EDIT2: @PeterTaylor e @GregMartin apontou que apenas números menor ou igual a 5
aparecer na seqüência, para que você não precisa se preocupar com a ambigüidade de algarismos romanos (números 1
- 8
são I
, II
, III
, IV
, V
, VI
, VII
, e VIII
)
4
/ IV
/ IIII
? Ou 95
/ XCV
/ VC
? Nem sempre pode haver uma maneira única de expressar um número inteiro, mas tenho certeza de que sempre há uma preferida (padrão) - me corrija se estiver errado.