Saya menemukan betapa menariknya huruf "H" dan "Saya" sangat mirip. "H" adalah goresan horizontal yang dikelilingi oleh dua goresan vertikal; "I" adalah goresan vertikal yang dikelilingi oleh dua goresan horizontal (tergantung font Anda). Saya yakin ini bisa disarangkan ... Anda tahu apa yang mengingatkan saya? Fraktal !!!
Mari kita mendefinisikan piramida "IHIH" sebagai berikut: Iterasi pertama adalah representasi ASCII dari huruf "I":
---
|
---
Iterasi berikutnya memiliki stroke vertikal di kedua sisi.
| |
|---|
| | |
|---|
| |
Jika Anda melihat "I" di tengah sebagai satu pukulan horizontal tunggal, maka iterasi kedua ini pada dasarnya adalah "H". Iterasi ketiga menambahkan goresan horizontal di bagian atas dan bawah
-------
| |
|---|
| | |
|---|
| |
-------
Sekali lagi, jika Anda melihat "H" di tengah sebagai stroke vertikal tunggal, maka iterasi ini pada dasarnya adalah "I". Pola ini berlanjut, bergantian antara "H" dan "I" pada setiap iterasi. Untuk referensi, berikut adalah 6 iterasi pertama:
1:
---
|
---
2:
| |
|---|
| | |
|---|
| |
3:
-------
| |
|---|
| | |
|---|
| |
-------
4:
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
5:
-----------
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
-----------
6:
| |
|-----------|
| | | |
| |-------| |
| | | | | |
| | |---| | |
| | | | | | |
| | |---| | |
| | | | | |
| |-------| |
| | | |
|-----------|
| |
Tantangan:
Menulis sebuah program atau fungsi yang output n'th iterasi dari piramida IHIH, dan baris baru opsional. Masukan Anda akan menjadi bilangan bulat positif tunggal dalam format wajar apa pun yang Anda inginkan. Anda tidak harus menangani input yang tidak valid, misalnya non-integer, angka lebih kecil dari 1, dll. Program Anda paling tidak harus menghasilkan output yang tepat untuk input hingga 20. Karena ini adalah kode-golf , celah standar tidak diperbolehkan dan jawaban tersingkat dalam byte menang!