Для цього питання крива, що лунає, - це та, яка слідує загальному напрямку зліва направо, але робить кілька разів 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
+---------------+ +---------------+ +---------------+ +---------------+
| | | | | | | |
| +-------+ | | +-------+ | | +-------+ | | +-------+ |
| | | | | | | | | | | | | | | |
| +---+ | | | +---+ | | | +---+ | | | +---+ | |
| | | | | | | | | | | | | | | |
+-------+ | | +-------+ | | +-------+ | | +-------+ | |
| | | | | | | |
---------------+ +---------------+ +---------------+ +---------------+ +
Критерії виграшу:
Це код-гольф , тому виграє найкоротший код у байтах на кожній мові. Поясніть, будь ласка, свій код, якщо у вас є час.
n
ліві повороти?
n+1
дивиться на приклади, особливо між окремими сегментами ..