Introdução:
(Fonte: Wikipedia )
Quando olhamos para um arco-íris, ele sempre terá as cores de cima para baixo:
vermelho; laranja; amarelo; verde; azul; índigo; tolet
Se olharmos para esses anéis individuais, é claro que o anel vermelho é maior que o anel violeta.
Além disso, também é possível ter dois ou até três arco-íris ao mesmo tempo.
Tudo isso combinado acima será usado neste desafio:
Desafio:
Dado um número inteiro n
, produza muitos anéis dos (possivelmente mais de um) 'arco-íris', onde usaremos as letras vibgyor
para as cores.
Veja os casos de teste abaixo para ver como eles são criados a partir de cima n=1
e como o espaçamento deve ser tratado (em n=8
). Como você pode ver, um espaço é adicionado entre dois arco-íris, incluindo o espaçamento na parte superior, antes de adicionarmos o anel do próximo arco-íris na linha.
Regras do desafio:
- Você tem permissão para usar capital em
VIBGYOR
vez de letras minúsculas - Deve haver um espaço entre os arco-íris individuais
- Qualquer quantidade de espaços à esquerda e / ou à direita / novas linhas é permitida, desde que o arco-íris real (onde quer que seja colocado na tela) esteja correto
- A entrada sempre será um número inteiro positivo (
>= 1
). O comportamento quandon=0
é, portanto, indefinido, e o programa / função pode fazer o que quiser (não produzindo nada; produzindo o arco-íris den=1
; produção aleatória; falha com erro; etc.) - Você pode gerar uma lista / matriz de seqüências de caracteres ou uma matriz / lista 2D de caracteres, se desejar (você pode adicionar o código de impressão bonita no rodapé do TIO).
- Ignore o fato de que as saídas parecem mais templos maias do que arco-íris. XD
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, é altamente recomendável adicionar uma explicação para sua resposta.
Casos de teste (primeiro n=1
a n=10
e n=25
):
1:
vvv
v v
2:
iii
ivvvi
iv vi
3:
bbb
biiib
bivvvib
biv vib
4:
ggg
gbbbg
gbiiibg
gbivvvibg
gbiv vibg
5:
yyy
ygggy
ygbbbgy
ygbiiibgy
ygbivvvibgy
ygbiv vibgy
6:
ooo
oyyyo
oygggyo
oygbbbgyo
oygbiiibgyo
oygbivvvibgyo
oygbiv vibgyo
7:
rrr
rooor
royyyor
roygggyor
roygbbbgyor
roygbiiibgyor
roygbivvvibgyor
roygbiv vibgyor
8:
vvv
v v
v rrr v
v rooor v
v royyyor v
v roygggyor v
v roygbbbgyor v
v roygbiiibgyor v
v roygbivvvibgyor v
v roygbiv vibgyor v
9:
iii
ivvvi
iv vi
iv rrr vi
iv rooor vi
iv royyyor vi
iv roygggyor vi
iv roygbbbgyor vi
iv roygbiiibgyor vi
iv roygbivvvibgyor vi
iv roygbiv vibgyor vi
10:
bbb
biiib
bivvvib
biv vib
biv rrr vib
biv rooor vib
biv royyyor vib
biv roygggyor vib
biv roygbbbgyor vib
biv roygbiiibgyor vib
biv roygbivvvibgyor vib
biv roygbiv vibgyor vib
25:
ggg
gbbbg
gbiiibg
gbivvvibg
gbiv vibg
gbiv rrr vibg
gbiv rooor vibg
gbiv royyyor vibg
gbiv roygggyor vibg
gbiv roygbbbgyor vibg
gbiv roygbiiibgyor vibg
gbiv roygbivvvibgyor vibg
gbiv roygbiv vibgyor vibg
gbiv roygbiv rrr vibgyor vibg
gbiv roygbiv rooor vibgyor vibg
gbiv roygbiv royyyor vibgyor vibg
gbiv roygbiv roygggyor vibgyor vibg
gbiv roygbiv roygbbbgyor vibgyor vibg
gbiv roygbiv roygbiiibgyor vibgyor vibg
gbiv roygbiv roygbivvvibgyor vibgyor vibg
gbiv roygbiv roygbiv vibgyor vibgyor vibg
gbiv roygbiv roygbiv rrr vibgyor vibgyor vibg
gbiv roygbiv roygbiv rooor vibgyor vibgyor vibg
gbiv roygbiv roygbiv royyyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygggyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbbbgyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbiiibgyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbivvvibgyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbiv vibgyor vibgyor vibgyor vibg