Escriba un programa (o función) que tome un entero positivo.
Si la entrada es 1
, imprima (o devuelva) dos diamantes adyacentes uno al lado del otro, cada uno con una longitud de 1 barra diagonal:
/\/\
\/\/
Para cada entrada N
mayor que 1, observe la salida para N-1
y para cada par de diamantes vecinos, inserte un nuevo diamante entre ellos cuya longitud lateral sea la suma de las longitudes laterales de los dos vecinos. Imprima (o devuelva) este nuevo patrón de diamantes.
Entonces, cuando 2
se ingresa, miramos la salida 1
y podemos ver que hay dos diamantes vecinos, ambos con longitud de lado 1. Así que insertamos un diamante de longitud lateral 2 (1 + 1) entre ellos:
/\
/\/ \/\
\/\ /\/
\/
Para la entrada 3
, miramos la salida 2
y agregamos dos diamantes con longitud lateral 3 (1 + 2 y 2 + 1) entre los dos pares de diamantes vecinos:
/\ /\
/ \ /\ / \
/\/ \/ \/ \/\
\/\ /\ /\ /\/
\ / \/ \ /
\/ \/
Continuando con el patrón, la salida para 4
es:
/\ /\
/\ / \ / \ /\
/ \ /\ / \ / \ /\ / \
/ \ / \ / \ /\ / \ / \ / \
/\/ \/ \/ \/ \/ \/ \/ \/\
\/\ /\ /\ /\ /\ /\ /\ /\/
\ / \ / \ / \/ \ / \ / \ /
\ / \/ \ / \ / \/ \ /
\/ \ / \ / \/
\/ \/
Y así.
Sus salidas pueden tener espacios finales en cualquier línea, pero solo hasta una nueva línea final (y no nuevas líneas iniciales).
El código más corto en bytes gana.