Encuentro fascinante cómo las letras "H" y "I" son muy similares. "H" es un trazo horizontal rodeado de dos trazos verticales; "I" es un trazo vertical rodeado de dos trazos horizontales (dependiendo de su fuente). Apuesto a que esto podría estar anidado ... ¿Sabes a qué me recuerda? Fractales !!!
Definamos la pirámide "IHIH" de la siguiente manera: la primera iteración es esta representación ASCII de la letra "I":
---
|
---
La siguiente iteración tiene un trazo vertical a cada lado.
| |
|---|
| | |
|---|
| |
Si ve la "I" en el medio como un solo trazo horizontal, entonces esta segunda iteración es básicamente una "H". La tercera iteración agrega un trazo horizontal en la parte superior e inferior
-------
| |
|---|
| | |
|---|
| |
-------
Nuevamente, si ve la "H" en el medio como un solo trazo vertical, entonces esta iteración es básicamente una "I". Este patrón continúa, alternando entre "H" e "I" en cada iteración. Como referencia, aquí están las primeras 6 iteraciones:
1:
---
|
---
2:
| |
|---|
| | |
|---|
| |
3:
-------
| |
|---|
| | |
|---|
| |
-------
4:
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
5:
-----------
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
-----------
6:
| |
|-----------|
| | | |
| |-------| |
| | | | | |
| | |---| | |
| | | | | | |
| | |---| | |
| | | | | |
| |-------| |
| | | |
|-----------|
| |
El reto:
Escriba un programa o función que genere la enésima iteración de la pirámide IHIH y una nueva línea final opcional. Su entrada será un solo entero positivo en el formato razonable que desee. No es necesario que maneje entradas no válidas, por ejemplo, números enteros, números menores que 1, etc. Su programa debe, como mínimo, producir la salida correcta para entradas de hasta 20. Como se trata de código de golf , no se permiten lagunas estándar. ¡y la respuesta más corta en bytes gana!