Ваша задача - написать программу или функцию, которая печатает треугольник ASCII. Они выглядят так:
|\
| \
| \
----
Ваша программа будет принимать один числовой ввод n
с ограничениями 0 <= n <= 1000
. Вышеупомянутый треугольник имел значение n=3
.
Треугольник ASCII будет иметь n
обратную косую черту ( \
) и вертикальные столбцы ( |
), n+1
строки и тире ( -
), и каждая строка будет иметь количество пробелов, равное номеру строки (на основе 0, т.е. первая строка - это строка 0), кроме конечной строки ,
Примеры:
Входные данные:
4
Выход:
|\
| \
| \
| \
-----
Входные данные:
0
Выход:
В этом тестовом примере выходные данные должны быть пустыми. Нет пробелов.
Входные данные:
1
Выход:
|\
--
Вход и выход должны быть точно такими, как я указал.
Это код-гольф , поэтому стремитесь к максимально короткому коду!
code-golf
ascii-art
code-golf
rubiks-cube
code-golf
path-finding
maze
regular-expression
code-golf
math
rational-numbers
code-golf
kolmogorov-complexity
graphical-output
code-golf
tips
code-golf
string
permutations
code-golf
sorting
base-conversion
binary
code-golf
tips
basic
code-golf
number
number-theory
fibonacci
code-golf
date
code-golf
restricted-source
quine
file-system
code-golf
code-golf
math
code-golf
ascii-art
code-golf
math
primes
code-golf
code-golf
math
matrix
code-golf
string
math
logic
factorial
code-golf
palindrome
code-golf
quine
stateful
code-golf
interactive
code-golf
board-game
code-golf
math
arithmetic
code-golf
string
code-golf
math
matrix
code-golf
math
abstract-algebra
polynomials
code-golf
date
code-golf
string
array-manipulation
sorting
code-golf
game
code-golf
string
code-golf
ascii-art
decision-problem
code-golf
number
sequence
code-golf
code-golf
code-golf
sequence
fibonacci
code-golf
math
geometry
random
code-golf
code-golf
math
decision-problem
fractal
rational-numbers
code-golf
number
number-theory
code-golf
combinatorics
permutations
card-games
code-golf
math
sequence
array-manipulation
fibonacci
code-golf
sequence
decision-problem
graph-theory
code-golf
ascii-art
parsing
lisp
code-golf
string
math
natural-language
logic
code-golf
math
logic
code-golf
string
alphabet
code-golf
string
code-golf
string
Okx
источник
источник
0
мог иметь какой-либо неожиданный вывод, так как это крайний случай (особенно если учесть, что количество тире должно быть на единицу больше, чем число ввода)Ответы:
Желе , 14 байт
Попробуйте онлайн!
Как это работает.
источник
C 58 байт
-
Благодаря @Steadybox, комментарии к этому ответу помогли мне побрить несколько байтов в моем решении выше
источник
2*n
там дважды, и меня это беспокоит, кто-нибудь может придумать какой-нибудь умный способ как-то сократить его?Javascript (ES6),
9785817574 байтаОказывается, я не использовал почти достаточно рекурсии
источник
05AB1E ,
161516 байтСохранил байт благодаря Аднану
Попробуйте онлайн!
объяснение
источник
ð×.svy¦…|ÿ\}¹>'-×»
Угадай, моя идея.s
не была так хороша, как я думал. Хорошее использованиеÿ
, не видел этого раньше..s
как начать,<Ýð×
но столкнулся с проблемой в особом случае с этими методами.FðN×…|ÿ\}Dg'-×»
для 15 байтовDg
! Спасибо :).s
также привели к вложенным массивам и выравниванию, что потребовало больше байтов.V ,
181716 байтов1 байт сохранен благодаря @ nmjcman101 за использование другого способа ничего не выводить, если ввод
0
Попробуйте онлайн!
HexDump:
Объяснение (устарело)
Сначала у нас есть цикл, чтобы проверить, является ли аргумент
0
. Если это так, код ниже выполняется (|\
написано). В противном случае ничего не пишется и буфер пуст.Теперь, когда мы получили вершину треугольника, нам нужно создать его тело.
Теперь у нас есть одна дополнительная строка в нижней части буфера. Это должно быть заменено на
-
s.Этот ответ был бы короче, если бы мы могли все, что мы хотим для ввода
0
V ,
1413 байтПопробуйте онлайн!
источник
«
конечно. Умная! :)C #, 93 байта
Анонимная функция, которая возвращает треугольник ASCII в виде строки.
Полная программа с функцией ungolfed, с комментариями и контрольными примерами:
источник
Python 2 , 69 байт
Попробуйте онлайн!
источник
"".join
и заменив его*
оператором иsep
аргументом в функции сна, поэтомуlambda x:print(*['|'+' '*n+'\\'for n in range(x)]+['-'*-~x*(x>0)],sep="\n")
CJam ,
242221 байтСохранено 1 байт благодаря Мартину Эндеру
Попробуйте онлайн!
объяснение
источник
SmileBASIC, 51 байт
источник
PowerShell ,
5167 байтПопробуйте онлайн!
(Увеличение байтов для учета отсутствия завершающего перевода строки)
Принимает данные
$n
и проверяет, что они ненулевые. Затем циклы, чтобы построить треугольник, и заканчивается строкой-
. НеявноеWrite-Output
происходит при завершении программы.источник
Сетчатка , 39 байт
Попробуйте онлайн
Преобразовать десятичный ввод в унарный. Замените каждый
1
на|<N-1 spaces>\¶
, распечатайте и отмените замену. Замените каждый1
дефисом, а последний дефис - двумя дефисами. Tadaa!источник
Обыкновенный Лисп,
8986 байтСоздает анонимную функцию, которая принимает n входных данных и печатает треугольник в
*standard-output*
(stdout, по умолчанию).Golfed
Ungolfed
Я уверен, что мог бы сделать это как-то короче.
источник
C
1019375 байтовНеуправляемая версия
@Steadybox Спасибо за указание, имеет большой смысл.
источник
printf("%c",'_');
так многословно?i;f(n){for(i=0;i++<n;)printf("%c%*c\n",124,i,92);for(;n--+1;)printf("-");}
i;f(n){for(i=0;i++<n;)printf("|%*c\n",i,92);for(;n--+1;)printf("-");}
n--+1
можно сократить до~n--
Древесный уголь , 15 байт
Попробуйте онлайн!
Сломать
источник
»
может быть опущено.Japt , 20 байт
Сохранено 2 байта благодаря @ETHproductions
Попробуйте онлайн!
объяснение
источник
o@'|+SpX +'\Ãp'-pUÄ)·
и из - за ошибки ( на самом деле непреднамеренный побочный эффект авто-функций), вы можете удалить'
в'-
.p
. Вот что вы можете сделать, например,m*2
удвоить каждый элемент илиmp2
J, 20 байт
-13 байт благодаря бобу
Попробуйте онлайн!
оригинал: 33 байта
ungolfed
Попробуйте онлайн!
источник
*,&'-' '|',.'\'{."0~_1-i.
*,&'-' '|',.' \'{~=@i.
Пайк,
1817 байтПопробуй это здесь!
источник
Python2, 73 байта
Полная программа. Я также пробовал интерполяцию строк для последней строки, но оказалось, что это на пару байт длиннее: /
Другое решение на 73 байта:
Контрольные примеры
источник
MATL , 19 байт
Попробуйте онлайн!
источник
QBIC , 41 байт
объяснение
источник
R 101 байт
Этот код соответствует
n=0
тест-кейс, если вы только рассмотритеSTDOUT
!Действительно,
stopifnot(n>0)
часть останавливает выполнение скрипта, ничего не отображает,STDOUT
а пишетError: n > 0 is not TRUE
вSDTERR
.Ungolfed:
источник
Python 2 , 62 байта
Попробуйте онлайн!
Печатает построчно, каждый раз добавляя еще один пробел перед обратной косой чертой. Если функция, которая не печатает, будет разрешена, она, вероятно, будет короче.
источник
JavaScript (ES6), 71 байт
Выходы на консоль. Сохраните 6 байтов, если печать в оболочку SpiderMonkey JavaScript приемлема. Сохраните 13 байтов, если возвращаемый результат приемлем.
источник
$`
шаблоне, но не знаю, подумал бы я об этом. Ницца.Python 2 , 67 байт
Еще одна функция в Python 2, используя
rjust
.Попробуйте онлайн!
источник
Python 3 , 60 байт
Попробуйте онлайн!
Еще два решения с тем же количеством байтов.
источник
Perl, 63 байта
Ungolfed:
$"
это разделитель списка, который по умолчанию равен "".$/
это разделитель выходной записи, который по умолчанию равен "\ n".$_
является неявной переменной циклаисточник
$n=<>
?Haskell ,
8265 байтПопробуйте онлайн! Использование:
Или более красиво:
источник
Pyth,
2318 байтТестовый набор доступен онлайн.
Спасибо Ven за 5 байтов.
объяснение
источник
|
для дополнительного байта.Javascript 101 (полная программа), 94 (вывод функции), 79 (возврат) байтов
Полная программа
Не будет работать в Chrome (поскольку процесс, по-видимому, не существует)
Не будет работать в TIO (так как приглашение, по-видимому, не разрешено)
Функция с ТОЧНОЙ печатью
Попробуйте онлайн
Функция с возвращаемой строкой
Попробуйте онлайн
Повторять символы в Javascript глупо и поэтому подавляет переводы строк при выводе
источник
Python 2 , 82 байта
Попробуйте онлайн!
Дольше, чем другой Python отвечает, но рекурсивная функция просто для того, чтобы отличаться.
Я чувствую расточительность, используя два
print
утверждения, но я не могу найти более короткий путь вокруг этого. Такжеexit()
отходы 7 прекратят печатать уменьшая количество-
под треугольником.источник
-~c*(c>0)
на последней строке, чтобы сохранить 3 байта :)c and-~c
.