Учитывая неотрицательное целое число, распечатайте это, X
которое является большим. X
является выходом для ввода 0
, и вы добавите косые черты, равные вводу в каждом направлении, чтобы расширить X
для более крупных входов.
Тестовые случаи
0
X
1
\ /
X
/ \
2
\ /
\ /
X
/ \
/ \
...
10
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
X
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
правила
Вы можете либо распечатать вывод, либо вернуть строку или список строк из функции. Разрешается использовать завершающий символ новой строки, а также дополнительные внутренние пробелы, которые не влияют на отображение.
Это код-гольф , поэтому выигрывает самый короткий ответ в байтах!
X
серединой (часть того, почему я добавил это), но кто знает: DОтветы:
Холст , 3 байта
Попробуй это здесь!
половина размера угольного ответа: D
источник
Древесный уголь , 6 байт
Ваша ерунда не останавливает меня;)
Попробуйте онлайн!
источник
JavaScript (ES6), 79 байт
Использует рекурсивную функцию g, которая проходит по сетке и строит вывод за символом.
Как?
Обе переменные x и y выполняют итерацию от 2n до -1 , где n - это ввод.
Для каждой позиции (x, y) в сетке мы выбираем один из этих символов:
/
\
X
используя следующие тесты:
~x
: Ложь, если x == -1 : мы достигли конца строки.x-y
: Ложь, если x == y : мы находимся на анти-диагонали.x+y-w
: Ложь, если x + y == w : мы находимся на диагонали.x-n
: Ложь, если x == n : потому что этот тест выполняется только при x == y , это означает, что мы находимся в точном центре сетки.и следующее дерево решений:
демонстрация
Показать фрагмент кода
источник
MATL , 16 байт
Попробуйте онлайн!
Рассмотрим ввод
2
в качестве примера. Стек показан здесь вверх ногами, то есть нижние элементы - это те, которые были добавлены последними.источник
C
108106 байтовПопробуйте онлайн!
(-2 игра в гольф благодаря MD XF)
Он печатает два символа (сначала
c = 47
косая черта иc + 45
обратная косая черта; затем они меняются местами) с шириной динамического поля.Ширина полей начинается с
1
и2n
, и на каждой итерации первая ширина увеличивается на 1, а вторая уменьшается на 2.Когда ширина второго поля становится равной 0, он выводит
'X'
и новую строку вместо обычных символов и меняет направление приращений (i
). Новая строка печатается для всех остальных строк отдельно (puts("")
).источник
a,b,i=1,c;g(n){for(b=2*n,c=47;a+=i;b?puts(""):(i=-i,c=92),b-=2*i)printf("%*c%*c",a,b?c+45*i:88,b,b?c:10);}
попробуйте онлайн!shortC , 111 байт
На основании моего C ответа . Конверсии:
R
->printf(
P
->putchar(
W
->while(
O
->for(
");}
Это также использует коды ASCII для
\
и/
.Попробуйте онлайн!
источник
Python 2 , 81 байт
Попробуйте онлайн!
источник
C
168155150 байт-5 благодаря компутронию
Конечно, можно играть в гольф; Я делаю так. Попробуйте онлайн!
Ungolfed:
источник
V , 21 байт
Попробуйте онлайн!
HexDump:
Объяснение:
По сути, у нас есть Вставка X, n раз расширить косую черту .
Но это не так просто, потому что мы также должны добавлять слэши в первый раз. Если косые черты уже были, мы могли бы написать расширение косых черт как:
Что бы сэкономить нам 6 байтов.
источник
C #,
157122120 байтБезголовая версия:
источник
_=d=>new string(' ',d);
(обратите внимание, что в скобках нет необходимостиd
). Вы можете удалить фигурные скобки вокруг цикла. Используйте дословную строку с таким образом, чтобы вам не нужно было избегать обратной косой черты. Если вы установите,i=0
то вы можете сделать++i<a+1
и удалитьi++
.\n
фактический перевод строки, но я не уверен, что если вы сможете удалить скобки вокруг цикла for, вам придется попробовать.++i<a+1
на++i<=a
EDIT. Вы также можете сохранить еще 4 байта, изменив значениеFunc
сnew string(' ',d)
на"".PadLeft(d)
_
.Mathematica, 71 байт
(Частично вдохновлено 104-байтовым решением Jenny_mathy)
Возвращает список строк.
Пояснение:
IdentityMatrix[2#+1]
делает матрицу правильного размера с 1 с по диагонали и 0 с в другом месте. Затем мы умножаем его на"\\"
(экранированный обратный слеш), что делает его матрицей с обратным слешем по диагонали и 0 в другом месте, поскольку, конечно, 1 раз обратный слеш является"/"
обратным слешем, а 0 раз обратным слешем равен 0. Мы добавляем это к разам, обратным для форма Х Мы почти закончили, за исключением того, что по-прежнему везде 0, а середина есть"\\" + "/"
. Зафиксируем эти две вещи, заменив" "
на0
и"X"
наa_+_
, что соответствует любой сумме двух вещей (например ,_+_
следует, кроме Mathematica слишком умна для своего собственного блага , и трактует , что в 2 раза_
). Наконец,""<>#&/@
превращает это в список строк.источник
Java (OpenJDK 8) , 135 байт
Лямбда-выражение, которое принимает целое число и возвращает массив строк
Попробуйте онлайн!
Ungolfed:
источник
T-SQL, 201 байт
отформатирован:
Ввод осуществляется через колонки а в имени таблицы т , согласно нашим правилам .
источник
Рубин , 66 байт
Рекурсивная функция.
Попробуйте онлайн!
объяснение
источник
Желе ,
2417 байтПопробуйте онлайн!
Как это устроено
-6 байт благодаря @LeakyNun и -1 байт с дополнительным улучшением
источник
Пакет, 201 байт
Начинается с построения верхней строки, затем после печати каждой строки перемещается
\
вправо на один пробел и/
влево на один пробел, следя за тем, чтобы они былиX
посередине.источник
PHP , 115 байт
Попробуйте онлайн!
источник
Сетчатка , 74 байта
Попробуйте онлайн!Объяснение:
Поместите
X
.Начиная с
X
, вверх,\
ставьте каждый раз по диагонали влево. Также поместите/
два пробела после,/
чем в прошлый раз.Начиная с
X
, работая вниз,/
каждый раз располагайте по диагонали влево. Также поместите еще\
два пробела после/
чем в прошлый раз.Количество пробелов между двумя диагоналями должно быть нечетным, поэтому последний пробел в каждой строке (кроме исходной
X
строки) удаляется.источник
Mathematica, 131 байт
Mathematica, 104 байта
вот еще один подход с использованием сетки
источник
APL (Дьялог) , 25 байт
Требуется
⎕IO←0
по умолчанию во многих системах.Попробуйте онлайн!
' \/'[
...]
индексировать строку с⎕
получить вход2×
умножить на два1+
добавить одну⍳
чем много целых чисел∘.=⍨
таблица равенства (т.е. единичная матрица; диагональ NW-SE)(
...)
Применить следующую молчаливую функцию к этому⊢
Аргумент+
плюс2×
два раза⌽
зеркально отраженный аргумент (то есть диагональ NE-SW)источник
Баш , 138 байт
Попробуйте онлайн!
Действительно долго, bash нагревает '\ and /'
Меньше гольфа
источник
Python 2 ,
9584 байта-10 байт благодаря @FelipeNardiBatista
Попробуйте онлайн!
источник
05AB1E , 21 байт
Попробуйте онлайн!
источник
Perl 5, 110 + 1 = 111 байт
Использует
-n
флаг.источник
QBIC , 90 байт
Как работает это чудовище, оставлено в качестве упражнения для читателя ...
Пример вывода:
источник
Visual Basic.Net ,
454450 байтне уверен,
writeline
сэкономит ли создание функции for несколько байтов, спасибо Стивену S за указание наas ...
удаление, также измененныйinteger
вobject
последнее изменение, измененный первый назадисточник
as Types
, потому что, если у вас естьOption Strict Off
, VB.NET действует как свободно типизированный язык.function
s ! =for loops
Спасибо за гольфOption Strict
выключен по умолчанию? Это как минимум в Visual Studio05AB1E , 22 байта
Попробуйте онлайн!
объяснение
Альтернативное 22-байтовое решение
источник
Пайк, 14 байт
Попробуй это здесь!
источник
tcl, 134
демонстрация
Установить
n
на первой строке.Может быть, я могу играть в гольф больше, используя рекурсивный подход
источник
R ,
7572 байтаВдохновленный этим ответом , генерирует неявную матрицу и записывает ее в стандартный вывод; читает размер из стандартного ввода. Он должен построить матрицу из пробелов и использует
sep=''
b / c, в противном случае он имеет проблемы с пробелами.Попробуйте онлайн!
источник