Соревнование
Ваша задача - создать программу или функцию, которая выводит следующее без ввода:
a
bb
ccc
dddd
eeeee
ffffff
ggggggg
hhhhhhhh
iiiiiiiii
jjjjjjjjjj
kkkkkkkkkkk
llllllllllll
mmmmmmmmmmmmm
nnnnnnnnnnnnnn
ooooooooooooooo
pppppppppppppppp
qqqqqqqqqqqqqqqqq
rrrrrrrrrrrrrrrrrr
sssssssssssssssssss
tttttttttttttttttttt
uuuuuuuuuuuuuuuuuuuuu
vvvvvvvvvvvvvvvvvvvvvv
wwwwwwwwwwwwwwwwwwwwwww
xxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzz
счет
Это код-гольф , поэтому выигрывает самый короткий ответ на каждом языке.
code-golf
string
kolmogorov-complexity
alphabet
SpookyGengar
источник
источник
Ответы:
05AB1E , 2 байта
Попробуйте онлайн!
Обратите внимание, что это выводит в виде списка строк, так как OP явно разрешен. Ссылка использует версию с pretty-print (к ней добавляются переводы строк).
Как это работает
A
дает строчный алфавит.ƶ
поднимает алфавит (умножает каждый элемент на его индекс).»
присоединяется к новым строкамисточник
Python 2 , 36 байт
Попробуйте онлайн!
источник
APL (Dyalog) ,
1285 байтов SBCS3 байта сохранены благодаря @ngn
4 байта сохранены благодаря @ Adám
OP выяснены прописные буквы действительны, а также выход в виде массива строк.
Попробуйте онлайн!
Как?
⌸
дает нам каждую букву в⎕A
алфавите с индексами в ней, переданную в функцию⍴⍨
с буквой в качестве левого аргумента и индексомes вкачестве правого аргумента.⍴⍨
переставляет свой правый аргумент в длину, указанную его левым.⍨
переключается влево и вправо (следовательно, символ этого, похожий на лицо человека, читающего это объяснение).источник
819⌶↑⎕A⍴¨⍨⍳26
↑
тоже.Haskell , 27 байт
Попробуйте онлайн! Возвращает список строк. (Спасибо @totallyhuman за указание, что теперь это разрешено)
Объяснение:
источник
<$
Повторяет ли первый аргумент n раз, где n - длина второго аргумента?брейкфук , 74 байта
Попробуйте онлайн!
объяснение
Попробуйте онлайн!
источник
Befunge-98 (FBBI) , 27 байт
где
символ подстановки (ASCII 26)
Попробуйте онлайн!
Используются заглавные буквы и завершающий перевод строки.
объяснение
Код работает путем сохранения счетчика (изначально 0) и в каждом цикле:
1+
- Увеличивает его на 1:0\::
- толкает вещи так, чтобы стек выглядел так:bottom [N, 0, N, N, N] top
'`j'@
- Проверяет, больше ли счетчик, чем 26j'@
- Если это так, мы перепрыгиваем через'
и выходим, используя@
j'@
- Если это не так, мы выполняем'
, который помещает значение ASCII@
в стекТеперь стек выглядит так:
bottom [N, 0, N, N, 64] top
+\
- Добавляет, а затем переключает верхнюю часть 2.bottom [N, 0, (N+64), N] top
Первый раз, это ASCII 65, илиA
k:
- Дублирует второе из верхних(N+1)
времен - теперь в стеке есть(N+2)
значения(N+64)
(плюсN
и0
ранее)$$
- выбросить 2 верхних значения - теперь есть толькоN
значения(N+64)
>:#,_
- печатает каждое верхнее значение, пока оно не достигнет0
- это означает, чтоN
копии(N+64)
будут напечатаны$
- выбрасывает0
- теперь стек простоN
a,
- печатает вводИ это повторяется
Мне нравится, как я использовал
@
как для завершения программы и для добавления в счетчик.источник
Рубин ,
3230 байт-2 байта благодаря @EricDuminil.
Попробуйте онлайн!
источник
27.times{|n|puts (n+96).chr*n}
было бы правильно с 30 байтамиJavaScript (ES6), 54 байта
источник
Excel VBA, 38 байт
Используя Немедленное Окно. :)
источник
"
BASH,
59 5440 байтПопробуйте онлайн!
Спасибо. 5 байт в @Justin Mariner
источник
for
Цикл может быть golfed вниз , используя этот наконечник на 54 байт: Попробуйте его в Интернете!Рубин, 38 байт
Возвращает массив строк
-5 байт благодаря полностью человеческому
* -11 байт благодаря отличной игре в гольф от Джордана.
источник
"\n"
вообще;puts
делает это для вас (хотя для дальнейшего использования$/
это на 2 байта короче), но вы можетеputs
полностью избавиться от него, если сделаете это лямбда-выражением, которое просто возвращает массив строк. Вы также можете изменитьa=[*?a..?z];puts a.map
вputs (a=*?a..?z).map
иx*(a.index(x)+1)
кx*-~a.index(x)
. Все вместе это 38 байтов .(a=*?a..?z)
внутри блока, а не в аргументах лямбда.V , 9 байт
Попробуйте онлайн!
HexDump:
источник
MATL , 9 байт
Попробуйте онлайн!
объяснение
источник
&
нельзя использовать для дублирования и транспонирования2Y2
?&
самом деле не дублирует и не транспонирует, хотя иногда дает тот же результат, что и этот. Что он делает, так это изменяет количество входов / выходов следующей функции. Например, если вы используете&+
,+
функция теперь берет один вход вместо двух и выводит сумму входа с самим транспонированием. Но это только потому , что это как+
работа с 1 входом ( то же самое для=
,>
и некоторые другие)Python 3 , 37 байт
Печатает начальный перевод строки (что разрешено).
Попробуйте онлайн!
источник
Желе ,
54 байтаподлый злоупотребление реализацией Python
-1 байт благодаря Адаму ( разрешен вывод списка строк; так как теперь имеется функция, а не программа)
Ниладная ссылка, которая возвращает список строк, строк
(чтобы напечатать его с символами новой строки в виде полной программы, просто добавьте
Y
обратно ).Попробуйте онлайн! (нижний колонтитул вызывает ссылку как nilad (
¢
) и получаетясноепредставление результата (ŒṘ
)в Python,поскольку поведение полной программы по умолчанию будет разбивать результат вместе, какabbccc...
)Как?
источник
Øa×J
должно быть достаточно .MATL , 11 байт
Попробуйте онлайн!
Использует умножение широковещания с единицами, чтобы получить большую квадратную матрицу желаемых букв 26x26. Далее берется нижняя треугольная часть и неявно печатается.
Также 11 байтов:
источник
Javascript,
87 байтов, 72 байта (большое спасибо @steenbergh)Мой первый ответ тоже:
источник
ind=1
в начале, точку с запятой послеi<123
и последнюю точку с запятой. также, пожалуйста, сделайте свой заголовок немного более понятным, указав язык - bytecount, с префиксом #.j
целом:for(i=1;i<27;){console.log(String.fromCharCode(i+96).repeat(i++))}
Japt ,
97 байтВыводит массив строк
Попытайся
объяснение
Разделите (
¬
) строчный алфавит (;C
) на массив символов, отобразите массив (Ë
) и повторите (p
) текущий элемент с текущимE
приращением index ( ) (°
).источник
®p°Y
Пип , 9 байт
Попробуйте онлайн!
В псевдокоде это
где
z
задан строчный алфавит иi
задано 0.Решения на основе карт занимают один дополнительный байт, потому что им нужно, чтобы
-n
флаг отображался в нескольких строках:источник
Точность !! 66 байтов
Попробуйте онлайн!
С комментариями
источник
Haskell , 31 байт
-12 байт благодаря Ними.
Попробуйте онлайн!
Это не фрагмент, это нулевая функция (без аргументов), которая выводит список строк, который разрешен из-за этого мета-консенсуса .
источник
R , 38 байт
Относительно неинтересный ответ. Выполните итерацию
i
от 1 до 26, выведитеi
букву алфавитаi
раз (с неявным переводом строки).Попробуйте онлайн!
Более интересным подходом может быть использование чего-то вроде следующего:
Это дает нам все буквы в нужном количестве, но без разрывов строк. Возможно, кто-то умнее меня сможет найти способ использовать это, чтобы получить ответ гольфиста.
источник
rep(letters, 1:26)
это намного короче ...Perl 5 , 19 байт
Попробуйте онлайн!
источник
Ржавчина , 82 байта
Я надеялся, что это будет намного короче, но явное преобразование / приведение между типами занимает много байтов :(
Попробуйте онлайн!
источник
PHP,
4746 байтили
Запустите
-nr
или попробуйте онлайн .источник
J ,
1817 байтОбъяснение:
Попробуйте онлайн!
источник
Perl 6 ,
2423 байтаПопытайся
Попытайся
источник
Октава ,
2524 байтаПопробуйте онлайн!
Сохранение одного байта благодаря Джузеппе, который сообщил мне, что OP допускает заглавные буквы.
Объяснение:
Создайте вектор
x
с ASCII-значениями алфавита верхнего регистра и транспонируйте его. Добавьте отрицательныйx
(то есть 26 нулей в строке вектора), чтобы создать сетку с (значениями ASCII):Возьмите нижнюю треугольную матрицу и преобразуйте в символы путем объединения с пустой строкой.
источник
C (gcc) ,
48 байтов50 байтовПерезапускаемая версия, согласно cleblanc и Steadybox в комментариях ниже.
Попробуйте онлайн!
источник
s[9];main(i){for(;i<27;)puts(memset(s,i+95,i++));}
Все еще бьет мой ответ несколькими байтами :)s[9];main(i){for(;puts(memset(s,i+95,i++))-27;);}
Japt,
171611 байт-5 байт благодаря Оливеру
В ИСО-8859-1
Не лучший результат, но я все еще новичок. Любые предложения очень приветствуются.
Выводит список строк, так как OP разрешен. Ссылка содержит еще 3 байта для новых строк.
Попробуйте онлайн!
источник
1oBÊÄ
можно заменить на26õ
. Вы можете сэкономить еще пару байтов, сделав что-то вроде;26ÆCgX pXÄ
o
принимаетf
аргумент ...