Надоев надежностью флэш-памяти, вы решили хранить все свои программы на одной из этих старых добрых 1440-килобайтных дискет. Однако после копирования даже 3000 программ диск был заполнен. Как это вообще возможно? Будучи опытным в искусстве игры в гольф кода, большинство ваших программ имеют длину не более 100 байт, поэтому должно быть достаточно места ...
Спросив об этом в Super User, вы обнаружите, что вас обидел размер кластера файловой системы - злой заговор разработчиков FAT12, который оставляет значительную часть вашей дискеты неиспользованной и вынуждает вас покупать больше, чем вам действительно нужно.
Купить больше дискет? Никогда! Размер кластера станет меньшей проблемой, если мы просто сохраним несколько программ в одном файле, что возможно, потому что разные компиляторы / интерпретаторы будут вести себя по-разному для одного и того же исходного кода.
задача
Напишите полиглот, который помещается в один кластер (512 байт или меньше) и решает как можно больше из следующих задач.
Прочитайте все входные данные и распечатайте их.
Распечатать Привет, мир! ,
Считайте строку / аргумент ( имя ) в качестве ввода и напечатайте Happy Birthday, [name]! ,
Прочитайте все входные данные и напечатайте вкладки «Я люблю» если он содержит один или несколько табуляторов (0x09) и я ненавижу пробелы! если это не так.
Прочитайте две строки / аргумента и выведите истинное значение, если второе является подстрокой первого, и ложное значение, если нет.
Прочитайте строку / аргумент и выведите истинное значение, если его символы находятся в строго возрастающем порядке, и ложное значение, если нет.
Прочитайте строку / аргумент и символ и напечатайте индексы всех вхождений этого символа.
Прочитайте строку / аргумент и напечатайте любой из символов с наибольшим количеством вхождений.
Прочитайте два целых числа от 0 до 255 и выведите их сумму.
Прочитайте одно целое число от 0 до 255 и выведите частное и остаток от деления на 7 .
Прочитайте одно целое число от 1 до 255 и выведите истинное значение, если оно является составным числом (ни 1, ни простое число), и ошибочным значением, если нет.
Прочитайте одно целое число от 1 до 255 и выведите истинное значение, если оно является степенью 2, и ложное значение, если нет.
Прочитайте два целых числа от 0 до 255 и выведите большее.
Считайте десятичное целое число от 0 до 255, напечатайте его шестнадцатеричное представление.
Прочитайте одно целое число от 0 до 255 и выведите его вес Хэмминга (число 1-бит).
Считайте одно целое число n от 1 до 13 и выведите F n , n- е число Фибоначчи .
Например, для ввода
13
напечатайте233
.
Прочитайте строку / аргумент ввода и создайте его.
Например, для ввода
Programming Puzzles & Code Golf
выведите это:+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
Прочитайте прямоугольный блок символов и поверните его на четверть оборота по часовой стрелке.
Например, для ввода
tye xll epb tma id sa s e i r hsn Tiu
распечатать это:
This text is simply unreadable
Прочитайте целое число от 1 до 40 и напечатайте ромб этой длины стороны.
Например, для ввода
3
выведите это:/\ / \ / \ \ / \ / \/
Распечатать это:
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
счет
Ответ, который позволяет объединить наибольшее количество программ в одном файле, который помещается в один 512-байтовый кластер, выигрывает. Связи разбиты по количеству байтов (чем ниже, тем лучше).
Дополнительные правила
Для каждой задачи, за которую вы претендуете на ваш счет, один и тот же файл (байт на байт) должен составлять полную программу на выбранном вами языке, которая решает эту конкретную задачу.
Каждая задача должна быть решена на другом языке.
Языки считаются разными, если они не являются разными версиями одного и того же языка. Например, есть только один JavaScript, один Python и один TI-BASIC, но C, C ++, Octave и MATLAB - это четыре разных языка.
Выбранный язык для каждой задачи должен удовлетворять нашему обычному определению языка программирования .
Кроме того, язык должен быть опубликован и внедрен до 9 сентября 2015 года.
Ваш компилятор / интерпретатор может не требовать каких-либо нестандартных флагов для получения ожидаемого поведения.
Исключения из этого правила включают флаги, необходимые для указания конкретного языка, для чтения программы из (одного) файла или для подавления баннера.
Входные данные для каждой задачи будут состоять из печатных символов ASCII (от 0x20 до 0x7E) и перевода строки (0x0A), и его длина не будет превышать 255 байтов.
Все целые числа могут быть прочитаны в десятичном или унарном виде, если в задании не указано иное.
Поведение для неверного ввода не определено.
Вы можете читать ввод из STDIN (или его ближайшей альтернативы) или в качестве аргументов командной строки.
Если задача требует чтения двух частей ввода, вы можете прочитать их - в любом порядке - разделенные однобайтовым разделителем по вашему выбору, как отдельные аргументы командной строки или один из STDIN, а другой как аргумент командной строки.
Если один из входных фрагментов является строкой, единственным возможным разделителем является перевод строки.
Распечатайте вывод в STDOUT (или ближайшую альтернативу). Все выходные данные в STDERR будут игнорироваться.
Для каждой задачи применяются стандартные правила игры в гольф .
В частности, это включает в себя лазейки, которые по умолчанию запрещены , за исключением жесткого кодирования выходных данных , что явно разрешено для этой задачи.
2>/dev/null
и получаем правильный вывод в stdout, это нормально? Просто чтобы быть уверенным.