Задача проста: напечатать последний, средний и первый символ исходного кода вашей программы в указанном порядке.
Средний символ определяется следующим образом, принимая исходную длину n
символов и индексирование 1:
- Если
n
чёт, выведитеn/2
-й иn/2 + 1
-й символ. (abcdef == cd
) - Если
n
нечетно, выведите(n-1)/2 + 1
-й символ. (abcde == c
)
правила
- При отсутствии ввода напечатайте последний, средний и первый символ в вашем исходном коде в форме
[last][middle][first]
. Это будет 3-4 символа в длину. - Выходные данные не должны содержать конечных пробелов. Однако, если пробел является первым, средним или последним символом, он должен быть напечатан как таковой.
- Исходный код должен быть
n >= 3
длиной символов. - Код должен состоять из
>= 3
уникальных символов. - Стандартные лазейки запрещены.
- Это код-гольф , поэтому выигрывает самое короткое по характеру решение .
образцы
# Form: [code] --> [output]
xyz --> zyx
abcd --> dbca
1 --> # not allowed: too short
abcde --> eca
aaabb --> # not allowed: not enough unique characters
System.out.print("S;pr"); --> ;prS
this is a test --> ts t
123[newline]45 --> 53[newline]1
121
для очень многих языков.-
отрицание и неявно печатает с\n1-
переводом строки, это трехбайтовый код. Мой поиск до сих пор был бесплодным.Ответы:
JavaScript,
97 байтВыходы:
NaN
Попробуйте онлайн!
источник
Трава , 17 байт
Попробуйте онлайн!
-2 байта благодаря jimmy23013.
Выходы
www
. Трава игнорирует все символы , кромеw
,W
иv
. Таким образом, дваV
с игнорируются; они там, чтобы гарантировать, что средний символ - этоw
- я не знаю, как выводитьv
илиW
в Grass… я мог бы использовать другой символ вместоV
, ноV
сохранил эстетику кода.источник
x
s (или любой другой символ не-Grass, который Grass игнорирует), чтобы переместить aw
в правильное место.wWWwww wWWwWWWww
V
s, потому что нахожу это красивее. ;-)мозговой трах , 17 байтов
Попробуйте онлайн!
Для непечатаемых файлов это можно уменьшить до 7 байт:
␀..␀_.␀
источник
U
в качестве инструкции. Функционально, код есть-[>+<---]>.
, поэтому ожидаемый результат будет.--
, который он не выводит.U
s, и этот интерпретатор счастливо игнорирует их. Должен ли учитываться каждый ответ, имеющий комментарии или несколько пробелов (или что-либо еще, что не обязательно имеет значение для языка)?U-[>+<-UU--]>...U
? В своем текущем виде код показывает только одну Uÿ-.ÿ..ÿ
? Это для печати и кратко.Язык программирования Шекспира , 119 байт
Попробуйте онлайн!
Печатает три пробела. Без печатных мест:
Язык программирования Шекспира , 227 байт
Попробуйте онлайн!
Как и в моем ответе INTERCAL без перевода строки, это сделано для того, чтобы последний символ программы был таким же, как и средний символ (хотя в данном случае это не также первый символ), удаляя вторую половину кода, пока они матч. (Я не уверен, мог ли я построить 46 в меньшем количестве байтов или нет, или я мог бы сыграть в гольф другие части первой половины больше.)
источник
!
Python 2 ,
1311 байтЧтобы очистить пробел:
Попробуйте онлайн!
-2 байта, спасибо wastl!
источник
RProgN 2 , 3 байта
Попробуйте онлайн!
Я думаю, что это действительно?
источник
1
и0
помещаются в стек, а затем неявная всплывающая печать в конце программы? Да, это действительно[quine]
испытаниями, пока не изменились правила quine.tac
Linux.05AB1E ,
75 байтовВыходы
R \n
.-2 байта, черпая вдохновение в ответе @Neil 's Batch , так что не забудьте также поддержать его!
Попробуйте онлайн.
5 байтов альтернатива @Grimy :
Выходы
12\n
.Попробуйте онлайн.
Начальные 7 байтов ответа:
Выходы
?«'
.Попробуйте онлайн.
Объяснение:
источник
PHP , 9 байт
Попробуйте онлайн!
источник
<?
тега, вы можете использовать одно из тривиальных 4-байтовых решений, например:1231
все без специального символа в качестве первого и последнего, любые другие 2 символа в середине. Ваш ответ может быть кратчайшим реальным кодом PHP-ответа.Желе , 5 байт
Попробуйте онлайн!
Вывод содержит два разных символа, но в коде также есть третий.
Тривиальная 4-байтовая версия:
источник
121
правильный тривиальный ответ?Excel, 9 байт
Так много скобок.
Примечание: возвращенный средний символ может фактически быть любым символом, так как это середина кода.
источник
"
. Отлично сработано!Рубин , 6 байт
Попробуйте онлайн!
Это выводы
" "
плюс перевод строки. Код оканчивается на a"
, средние два символа -и
"
, и начинается с новой строки.источник
DOS / Windows Batch Language, 9 байтов
источник
Рубин ,
119 байтПопробуйте онлайн!
источник
Пакет, 9 символов
Средний и последний символы являются обоими
h
, а затемecho
по умолчанию печатает новую строку, которая является первым символом сценария.источник
PowerShell, 3 байта
Работает только в Microsoft Windows.
Вывод, к сожалению, 8 байтов в UTF-16. Но вопрос говорит вывод символов, а не байтов. Возможно, UTF-16 является лишь одним из поддерживаемых способов представления символов в PowerShell. Они не интерпретируются иначе, чем файл ASCII.
источник
0x0a != 0x0d != 0x31
:)Баш (
1511 символов)который распечатывает
|rev
источник
echo<space>e<space><space>e
будет выводитьe<space>e<newline>
вместоe<space>e
, так что я отклонил его. Новая строка является частью вывода, поэтому GrzegorzOledzki использует эту-n
опцию. Попробуйecho -n e-e
онлайн против Попробуйecho e e
онлайн . И снова, пожалуйста, не редактируйте ответ других людей. Если у вас есть гольф, чтобы предложить, оставьте комментарий.printf pfp
, но только потому, что нам нужно два пробела из-за этого определения среднего символа, иначе это будет 10 ...ArnoldC , 61 байт
Попробуйте онлайн!
Тривиальный ответ в ArnoldC. 31-й байт - это пробел перед строковым литералом.
источник
Недогрузка ,
9 байтов7 байтовСпасибо Khuldraeseth na'Barya за улучшенное решение!
Что касается того, что я могу сказать, это теперь неустранимо, так как:
Попробуйте онлайн!
источник
Язык программирования Шекспира ,
163153 байта-10 байт благодаря Джо Кинг.
Попробуйте онлайн!
Мой первый ответ на SPL! Выходы
!BB
.Есть еще один ответ SPL от Unrelated String; в этом ответе они выводят только пробелы в 119 байт или выводят непробельные символы в 227 байт. Этот находится между, а также выводит символы без пробелов.
Здесь используются два трюка:
!
.
!
.
B
, следовательно, название игры -B
и мне нужно, чтобы второй «большой» был «Большой», который работает, так как SPL нечувствителен к регистру.Так как мне понадобился этот капитал
B
и восклицательный знак в конце, я решил, чтобы Аякс кричал все громче и громче по сцене.источник
CJam , 7 байтов
Попробуйте онлайн!
источник
0 1 0
Я уверен, что он короче и имеет три разных персонажа (я не хочу повторять мой подход к желе: P).Befunge-93 , 7 байт
Попробуйте онлайн!
объяснение
Выход
0 .
источник
APL (Dyalog Unicode) ,
54 байтаПолные программы.
Буровой раствор от J.Sallé:
Печатает этот номер. Гораздо более интересное решение:
Попробуйте онлайн!
APL игнорирует ведущие нули, поэтому это просто масштабированный формат для 10 × 10¹ = 100.
источник
Шеф-повар , 447 байт
Попробуйте онлайн!
Серьезное подчинение,
196177 байтблагодаря A__
Попробуйте онлайн!
источник
Python 3,
19 байт13 байтФункция печати добавляет новую строку по умолчанию, поэтому код начинается с новой строки. Последний символ кода - ")", поэтому он печатается первым. Чтобы количество символов было неравномерным, перед аргументом функции печати вставляется пробел. Пожалуйста, извините за непристойность кода.
Выходы:
)(\n
Попробуйте онлайн.
источник
print
и пробел внутриprint
после")("
. Выходы:)(
с новой строкой в конце.end
параметра по умолчанию для функции печати не учитываются.Пробел ,
3129 байт-2 байта благодаря @RobinRyder .
Буквы
S
(пробел),T
(табуляция) иN
(новая строка) добавляются только как подсветка.[..._some_action]
добавлено только в качестве объяснения.Попробуйте онлайн (только с необработанными пробелами, вкладками и новыми строками).
Содержит
a
неоперативный (может быть любой непробельный символ), чтобы сделать длину нечетной. Он добавляется перед первой половиной программы, поэтому средний символ также является пробелом, поскольку средний символ стал бы новой строкой, если бы он был во второй половине программы. Все непробельные символы игнорируются в программах.источник
Haskell , 17 байт
Попробуйте онлайн!
источник
MathGolf ,
54 байта-1 байт, используя тривиальное решение, представленное @ErikTheOutgolfer в его ответе Jelly , которое работает для любого языка с неявным выводом без завершающей строки.
Попробуйте онлайн.
Оригинальный 5- байтовый ответ:
Выходы
x ù
.Попробуйте онлайн.
Объяснение:
источник
Brain-Flak , 11 байт
Попробуйте онлайн!
объяснение
Нам нужно положить 3 вещи в стек. Самый быстрый способ сделать это - положить 3 1 (или нули) в стек. Теперь, поскольку
(кодовая точка 1) ничего не делает в Brain-Flak, мы можем добавить их в программу в первом, среднем и последнем местах. Теперь это кажется немного обманчивым, так что вот еще два ответа, которые, на мой взгляд, менее обманчивы.
Печать брекетов, 31 байт
Попробуйте онлайн!
Этот ответ печатает фигурные скобки, так что напечатанные символы на самом деле имеют отношение к коду, у него есть один дополнительный символ, чтобы сделать длину нечетной, поэтому нам нужно вывести только 1 средний символ.
Содержит только фигурные скобки, 32 байта
Попробуйте онлайн!
Это программа только для фигурных скобок, и источник, и (следовательно) выходные данные полностью состоят из фигурных скобок (символ Brain-Flak на самом деле заботится).
источник
AsciiDots - 9 байт
Выход:
.$.
Код начинается с a
.
, заканчивается a.
, а средний символ - a$
. Одинарная кавычка в середине устанавливает режим точечной печати, чтобы просто читать символы прямо в выходной поток.Вполне возможно, что это можно сделать меньше, но я начинаю сомневаться, что это возможно. Чтобы напечатать три символа, необходимо использовать одинарную кавычку, поскольку для вывода двойной кавычки потребуется конец строки. Однако это означает, что за одинарной кавычкой должны следовать а) три символа и б) не может быть центральным символом. Чтобы сократить это до семи байтов, я рассматривал попытку повторно использовать начало точки в качестве одного из печатных символов (что-то вроде программы quine AsciiDot). Однако я обнаружил, что самая короткая последовательность, доступная для печати, была
($'
который должен был бы напечатать четыре символа в пространстве трех или три символа в пространстве четырех. Я также попробовал несколько хакерских альтернативных методов, таких как попытка напечатать значение точки (равное 0) в качестве одного из символов. Хотя может быть какая-то система, которая работает, я обнаружил, что она довольно сложная и большая. Таким образом, я считаю, что вышеизложенное является наименьшим решением. (Я буду обновлять, если я найду что-то меньшее)источник
/'$'-.[newline]\.
попробуйте онлайн!MATLAB, 13
15байтВыходы
) d
Предыдущая версия (15 байт, менее строгий вывод):
Выходы
'''
источник
ans =\n '''\n
. Обычно это не проблема, но эта задача, похоже, устанавливает более строгие стандарты. Но тогда я могу неправильно истолковать проблему.