Acho fascinante como as letras "H" e "I" são muito semelhantes. "H" é um traço horizontal cercado por dois traços verticais; "I" é um traço vertical cercado por dois traços horizontais (dependendo da fonte). Aposto que isso pode ser aninhado ... Você sabe o que isso me lembra? Fractais !!!
Vamos definir a pirâmide "IHIH" da seguinte forma: A primeira iteração é essa representação ASCII da letra "I":
---
|
---
A próxima iteração tem um traço vertical em ambos os lados.
| |
|---|
| | |
|---|
| |
Se você visualizar o "I" no meio como um único traço horizontal, essa segunda iteração será basicamente um "H". A terceira iteração adiciona um traço horizontal nas partes superior e inferior
-------
| |
|---|
| | |
|---|
| |
-------
Novamente, se você visualizar o "H" no meio como um único golpe vertical, essa iteração é basicamente um "I". Esse padrão continua, alternando entre "H" e "I" em todas as iterações. Para referência, aqui estão as 6 primeiras iterações:
1:
---
|
---
2:
| |
|---|
| | |
|---|
| |
3:
-------
| |
|---|
| | |
|---|
| |
-------
4:
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
5:
-----------
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
-----------
6:
| |
|-----------|
| | | |
| |-------| |
| | | | | |
| | |---| | |
| | | | | | |
| | |---| | |
| | | | | |
| |-------| |
| | | |
|-----------|
| |
O desafio:
Escreva um programa ou função que produza a n- ésima iteração da pirâmide IHIH e uma nova linha opcional à direita. Sua entrada será um número inteiro positivo único, em qualquer formato razoável que você desejar. Você não precisa lidar com entradas inválidas, por exemplo, números não inteiros, números menores que 1 etc. Seu programa deve, no mínimo, produzir a saída correta para entradas de até 20. Como esse é um código de golfe , brechas padrão não são permitidas. e a resposta mais curta em bytes vence!