Escreva um programa (ou função) que receba um número inteiro positivo.
Se a entrada for 1
, imprima (ou devolva) dois diamantes vizinhos lado a lado, cada um com um comprimento lateral de 1 barra:
/\/\
\/\/
Para cada entrada N
maior que 1, observe a saída de N-1
e para cada par de diamantes vizinhos, insira um novo diamante entre eles, cujo comprimento lateral seja a soma dos comprimentos laterais dos dois vizinhos. Imprima (ou devolva) esse novo padrão de diamante.
Então, quando 2
é entrada, examinamos a saída 1
e podemos ver que existem dois diamantes vizinhos, ambos com comprimento lateral 1. Então, inserimos um diamante com comprimento lateral 2 (1 + 1) entre eles:
/\
/\/ \/\
\/\ /\/
\/
Para entrada 3
, examinamos a saída 2
e adicionamos dois diamantes com comprimento lateral 3 (1 + 2 e 2 + 1) entre os dois pares de diamantes vizinhos:
/\ /\
/ \ /\ / \
/\/ \/ \/ \/\
\/\ /\ /\ /\/
\ / \/ \ /
\/ \/
Continuando o padrão, a saída para 4
é:
/\ /\
/\ / \ / \ /\
/ \ /\ / \ / \ /\ / \
/ \ / \ / \ /\ / \ / \ / \
/\/ \/ \/ \/ \/ \/ \/ \/\
\/\ /\ /\ /\ /\ /\ /\ /\/
\ / \ / \ / \/ \ / \ / \ /
\ / \/ \ / \ / \/ \ /
\/ \ / \ / \/
\/ \/
E assim por diante.
Suas saídas podem ter espaços à direita em qualquer linha, mas apenas até uma nova linha à direita (e nenhuma linha de frente).
O código mais curto em bytes vence.