Вызов
Мы все знаем о нормальных рождественских елках - но как насчет перевернутой рождественской елки ! Это довольно простой, рождественский тематический вызов. Цель этой задачи - сделать из меня ASCII перевернутую рождественскую елку. Вот правила для этого вызова:
- Примите нечетное, положительное целое число. Вы можете предположить, что это всегда будет между
7
и51
. Основа дерева будет составлена из символов:
___ \ / |
Верх дерева (звезда) будет состоять из одного
*
.Каждая строка дерева будет построена в формате
<?>
где?
любое число-
s. Например, если вы делаете линию длины5
, строка должна быть<--->
. Или если сделать линию длины8
, линия должна быть<------>
.Вот как должно быть построено тело дерева:
Возьмите нечетное число,
n
данное в качестве входных данных, и создайте линию дерева этой длины.Вычтите
4
изn
и создать линию дерева этой длины.Вычтите
2
изn
и создать линию дерева этой длины.Уменьшение
n
на2
. После этого, если нетn
равных5
, вернитесь к шагу 2.
База (см. Шаг 2.) звезда (см. Шаг 3.) и каждая линия дерева (см. Шаги 4. и 5.) должны быть центрированы с использованием исходного ввода нечетного числа (см. Шаг 1.) в качестве максимального ширина.
Примеры / Тестовые случаи
odd number inputed: 7
___
\ /
|
<-----> line length -> 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 13
___
\ /
|
<-----------> line length -> 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 9
___
\ /
|
<-------> line length -> 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 17
___
\ /
|
<---------------> line length -> 17
<-----------> line length -> 17 - 4 = 13
<-------------> line length -> 17 - 2 = 15
<---------> line length -> 15 - 4 = 11
<-----------> line length -> 15 - 2 = 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
правила
- Применяются стандартные лазейки .
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах!
repeat the above steps until the odd number minus 2 equals 5
- в первом входе нечетное число равно 7, и 7-2 = 5, поэтому дерево должно заканчиваться мгновенно (я знаю, что вы имеете в виду, но оно нуждается в перефразировании)
7
минимальным входным значением, вы должны сначала создать три линии дерева (подэтапы .1.1, .1.2, .1.3), затем вычесть 2
нечетное число и проверить, равно ли оно 5
. Инструкция для проверки того, что «нечетное число минус 2 равно 5» находится в конце, остальные три шага должны быть выполнены в первую очередь. Но чтобы ответить на ваш первый комментарий, это было бы хорошо.
7
качестве входных данных или вы можете принять 4
, как в четвертом нечетном числе (или 3
если оно индексировано 0).