Для целей этого вопроса кривая меандрирования представляет собой кривую, которая следует общему направлению слева направо, но многократно поворачивает 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
при рассмотрении примеров, особенно между отдельными сегментами ..