出于这个问题的目的,一条曲折的曲线是沿着从左到右的大致方向,但是反复使n + 1向左旋转90度,然后使n + 1向右旋转(对于n> 0)。
实际上,曲折本身将具有n
片段。
转弯用表示+
。
曲折的宽度(两个之间的距离+
)在水平线(---
)为3,在垂直线(|
)为1
以下是大小为n从1到5的曲折曲线的单个段:
+-------------------+
| |
+---------------+ | +-----------+ |
| | | | | |
+-----------+ | +-------+ | | | +---+ | |
| | | | | | | | | | | |
+-------+ | +---+ | | +---+ | | | +---+ | | |
| | | | | | | | | | | | | |
+---+ +---+ | +---+ | | +-------+ | | +-----------+ | |
| | 1 | | 2 | | 3 | | 4 | | 5
---+ +-------+ +-----------+ +---------------+ +-------------------+ +
挑战:
给定两个正数n
和m
,画出m
一条曲折曲线的大小的段n
。您可以编写完整的程序或函数。
输入:
n
> 0曲线的大小
m
> 0要绘制的段数
输出:
曲折曲线的ASCII表示形式。
例子:
n = 3
m = 2
+-----------+ +-----------+
| | | |
| +---+ | | +---+ |
| | | | | | | |
+---+ | | +---+ | |
| | | |
-----------+ +-----------+ +
n = 2
m = 5
+-------+ +-------+ +-------+ +-------+ +-------+
| | | | | | | | | |
+---+ | +---+ | +---+ | +---+ | +---+ |
| | | | | | | | | |
-------+ +-------+ +-------+ +-------+ +-------+ +
n = 4
m = 4
+---------------+ +---------------+ +---------------+ +---------------+
| | | | | | | |
| +-------+ | | +-------+ | | +-------+ | | +-------+ |
| | | | | | | | | | | | | | | |
| +---+ | | | +---+ | | | +---+ | | | +---+ | |
| | | | | | | | | | | | | | | |
+-------+ | | +-------+ | | +-------+ | | +-------+ | |
| | | | | | | |
---------------+ +---------------+ +---------------+ +---------------+ +
获奖标准:
这是代码高尔夫球,因此每种语言中以字节为单位的最短代码获胜。如果有时间,请解释您的代码。
1
未来挑战的建议:绘制第一个数字(曲折度不断增加),允许图形输出
—
Luis Mendo
它不是
—
LiefdeWen
n
左转吗?
@LuisMendo是的,当我合成1-5张图像时,我意识到其中存在一个很好的挑战-给定一个L个正整数列表,组成一个分段为L(i)的曲折曲线
—
Galen Ivanov
@LiefdeWen取决于您从哪里开始计数。我认为这是
—
盖伦·伊万诺夫
n+1
在看的例子时,特别是单段之间..