Tôi thấy thật thú vị khi các chữ cái "H" và "I" rất giống nhau. "H" là một nét ngang được bao quanh bởi hai nét dọc; "Tôi" là một nét dọc được bao quanh bởi hai nét ngang (tùy thuộc vào phông chữ của bạn). Tôi cá rằng điều này có thể được lồng nhau ... Bạn biết điều gì nhắc nhở tôi không? Fractal !!!
Chúng ta hãy định nghĩa kim tự tháp "IHIH" như sau: Lặp lại đầu tiên là biểu diễn ASCII của chữ "I":
---
|
---
Lặp lại tiếp theo có một nét dọc ở hai bên.
| |
|---|
| | |
|---|
| |
Nếu bạn xem "I" ở giữa là một nét ngang đơn lẻ, thì lần lặp thứ hai này về cơ bản là "H". Lặp lại thứ ba thêm một nét ngang ở trên và dưới
-------
| |
|---|
| | |
|---|
| |
-------
Một lần nữa, nếu bạn xem "H" ở giữa là một nét dọc đơn, thì lần lặp này về cơ bản là "I". Mô hình này tiếp tục, xen kẽ giữa "H" và "I" trên mỗi lần lặp. Để tham khảo, đây là 6 lần lặp đầu tiên:
1:
---
|
---
2:
| |
|---|
| | |
|---|
| |
3:
-------
| |
|---|
| | |
|---|
| |
-------
4:
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
5:
-----------
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
-----------
6:
| |
|-----------|
| | | |
| |-------| |
| | | | | |
| | |---| | |
| | | | | | |
| | |---| | |
| | | | | |
| |-------| |
| | | |
|-----------|
| |
Các thách thức:
Viết chương trình hoặc hàm tạo ra lần lặp thứ N của kim tự tháp IHIH và một dòng mới tùy chọn. Đầu vào của bạn sẽ là một số nguyên dương duy nhất ở bất kỳ định dạng hợp lý nào bạn muốn. Bạn không phải xử lý các đầu vào không hợp lệ, ví dụ như không phải là số nguyên, số nhỏ hơn 1, v.v. Chương trình của bạn ít nhất phải tạo ra đầu ra phù hợp cho đầu vào tối đa 20. Vì đây là golf-code , các lỗ hổng tiêu chuẩn không được phép và câu trả lời ngắn nhất trong byte thắng!