我发现字母“ H”和“ I”非常相似很着迷。“ H”是由两个垂直笔划包围的水平笔划;“ I”是一个垂直笔画,周围有两个水平笔画(取决于您的字体)。我敢打赌,这可能是嵌套的...你知道让我想起什么吗?分形!!!
让我们定义“ IHIH”金字塔如下:第一个迭代是字母“ I”的ASCII表示形式:
---
|
---
下一次迭代的任一侧都有一个垂直笔触。
| |
|---|
| | |
|---|
| |
如果将中间的“ I”视为单个水平笔划,则第二个迭代基本上就是“ H”。第三次迭代在顶部和底部添加了水平笔划
-------
| |
|---|
| | |
|---|
| |
-------
同样,如果将中间的“ H”视为单个垂直笔划,则此迭代基本上就是“ I”。这种模式继续,在每次迭代中在“ H”和“ I”之间交替。供参考,这里是前6个迭代:
1:
---
|
---
2:
| |
|---|
| | |
|---|
| |
3:
-------
| |
|---|
| | |
|---|
| |
-------
4:
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
5:
-----------
| |
|-------|
| | | |
| |---| |
| | | | |
| |---| |
| | | |
|-------|
| |
-----------
6:
| |
|-----------|
| | | |
| |-------| |
| | | | | |
| | |---| | |
| | | | | | |
| | |---| | |
| | | | | |
| |-------| |
| | | |
|-----------|
| |
挑战:
编写一个程序或函数,输出IHIH金字塔的第N个迭代以及一个可选的尾随换行符。您的输入将是您想要的任何合理格式的单个正整数。您不必处理无效的输入,例如非整数,小于1的数字等。您的程序至少必须为最多20个输入产生正确的输出。由于这是代码高尔夫,因此不允许出现标准漏洞以字节为单位的最短答案将获胜!