Trovo affascinante come le lettere "H" e "I" siano molto simili. "H" è un tratto orizzontale circondato da due tratti verticali; "I" è un tratto verticale circondato da due tratti orizzontali (a seconda del tipo di carattere). Scommetto che questo potrebbe essere nidificato ... Sai cosa mi ricorda? Frattali !!!
Definiamo la piramide "IHIH" come segue: La prima iterazione è questa rappresentazione ASCII della lettera "I":
---
|
---
L'iterazione successiva ha un tratto verticale su entrambi i lati.
| |
|---|
| | |
|---|
| |
Se vedi l'io al centro come un singolo tratto orizzontale, questa seconda iterazione è fondamentalmente una "H". La terza iterazione aggiunge un tratto orizzontale in alto e in basso
-------
| |
|---|
| | |
|---|
| |
-------
Ancora una volta, se vedi la "H" al centro come un singolo tratto verticale, questa iterazione è fondamentalmente un "io". Questo schema continua, alternando "H" se "I" ad ogni iterazione. Per riferimento, ecco le prime 6 iterazioni:
1:
---
|
---
2:
| |
|---|
| | |
|---|
| |
3:
-------
| |
|---|
| | |
|---|
| |
-------
4:
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
5:
-----------
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
-----------
6:
| |
|-----------|
| | | |
| |-------| |
| | | | | |
| | |---| | |
| | | | | | |
| | |---| | |
| | | | | |
| |-------| |
| | | |
|-----------|
| |
La sfida:
Scrivi un programma o una funzione che genera l' ennesima iterazione della piramide IHIH e una nuova riga finale opzionale. Il tuo input sarà un singolo intero positivo in qualunque formato ragionevole tu voglia. Non è necessario gestire input non validi, ad esempio numeri non interi, numeri inferiori a 1, ecc. Il programma deve almeno produrre l'output corretto per input fino a 20. Dato che si tratta di code-golf , non sono ammesse scappatoie standard e la risposta più breve in byte vince!