Когда число отображается на калькуляторе, можно рассмотреть, как будут выглядеть различные преобразования этого числа. Например, на семисегментном дисплее 2 отображается так:
И при переворачивании по горизонтали это выглядит так:
Таким образом, зеркальное отображение 2 равно 5.
Задача в этой задаче состоит в том, чтобы взять однозначное число и вернуть число, которое является его зеркальным отображением (если это возможно). Если его зеркальное отображение не похоже на число, верните число, повернутое на 180 градусов (если это возможно). Если ни один из этих случаев не верен, верните -1.
Вот полный список входов и выходов, которые ваша программа должна обработать:
Input Output
0 0
1 -1
2 5
3 -1
4 -1
5 2
6 9
7 -1
8 8
9 6
Как вызов коду для игры в гольф , выигрывает самый короткий код!
Ответы:
Хаскелл -
433143 персонажа без всяких фантазий.
Получил до 31 символа, сделав его частичной функцией.
источник
f=
второе решение, так как оно является допустимым выражениемGolfScript,
1514Я снова прочитал спецификацию и обнаружил, что ввод должен быть строкой.
Бежать:
Старая версия (которая имеет целочисленный ввод):
Более новый (14 байт) несколько вдохновлен ответом CJam от aditsu .
источник
PowerShell - 27
источник
Python 2.x - 28
источник
`
s и сохранить 2 символа.JavaScript
3736источник
.search()
и сохранить байт.CJam, 20 байтов
Попробуйте онлайн.
Выход
Как это устроено
источник
BEFUNGE 93 -
181420 байтЯ думаю, что комментаторы правы, хотя Befunge, будучи двумерным языком, немного отличается. Тем не менее, в этот момент комментаторы правы.
шаги:
Считывает ввод как числовое значение x и помещает его в стек.
Получает значение символа c (например, '!' = 33 или '*' = 42. Пустая ячейка = 32) в позиции x, 1.
Считывает символьное значение ячейки 0,1 (33), вычитает его из c и выводит его как числовое значение.
источник
&1g'!-.
Ява - 49
Здесь
0x790a300601
- значение, заполненное желаемыми результатами, с одним добавленным, чтобы сделать их положительными. Значения хранятся в клочьях внутри значения, поэтому для их выталкивания требуется немного смещения и маскировки.Java - 100 (веселый вариант)
Не самый маленький вариант, но немного веселья. Я нашел случайное начальное число, которое выдает правильные значения при вызове X раз (где 0> = X <= 9).
источник
JavaScript (ECMAScript 6) 25
JavaScript (ECMAScript 5) 43
ОБНОВЛЕНИЕ: edc65 предложил гораздо лучшую технику. зубная щетка предложила намного лучший язык. На данный момент мой основной вклад отладки и догадки.
источник
x=>[0,-1,5,-1,-1,2,9,-1,8,6][x]
.function(x)[0,-1,5,-1,-1,2,9,-1,8,6][x]
, также благодаря Firefox. В любом случае я не собирался побеждать, поэтому я решил, что просто буду придерживаться ответа с наивысшей совместимостью. Если я начну переключать языки для краткости, то со временем я начну определять свой собственный язык для каждой задачи, которую я выполняю. Но я все равно упомяну версию ECMAScript 6, поскольку вы ее предложили-(x!=6)
. Спасибо.f=
если вы не вызываетеf
рекурсивно или если для ответа на вопрос явно не нужна функция с определенным именемБаш 29
например
источник
'
вокруг выражения sed. Также я думаю, что вы можете опустить это,g
потому что спецификация предоставляет только одну цифру за раз'
. Любитg
для более длительного ввода!Кона - 29
Эта функция возвращает элемент
x
из массива0 -1 5...
Примеры:
источник
JavaScript 36
3741как функция ES6 - 27:
источник
f=v=>~-[1,,6,,,3,10,,9,7][v]
Скриптинг, 11 символов
Наконец, я нашел компьютер Windows с установленной Visual Studio для создания интерпретатора. И это легко победило мой код GolfScript.
Он читает
18453063256\11\?/11%(
в GolfScript.источник
J -
2827 байтВы знаете, что мне нравится? Простота (28 байт). Обратите внимание, что в J
_1
отрицательный (-1).Добавьте немного сложности, и у вас есть 27 байтов.
Пример:
источник
CJam - 14
Версия ввода / вывода:
Версия стека (предполагается, что число находится в стеке):
Попробуйте их на http://cjam.aditsu.net/
источник
Perl,
2726Граф включает в себя
p
флагИспользование:
Подождите, Perl только что победил J? :)
источник
y+0-9+9a4aa70a13+;$_=9-hex
, который такой же длины, но ваш более оригинальный;)echo 1 | perl -pe y/2569/5296/,s/[347]/-1/
Marbelous 34 байта
Это не самое короткое решение, но и не самое длинное.
Как это устроено
}0
порождает мрамор, представляющий первый ввод командной строки. Этот мрамор падает на следующий тик, на=6
клетку.=6
это ячейка сравнения, она выталкивает любой мрамор со значением 6 вниз, а все остальные вправо. Эта цепочка ячеек сравнения толкает шарики вправо до тех пор, пока они не достигнут желаемого значения. 0 и 8 просто проваливаются и печатаются, когда они падают с нижней части доски, 6 и 2, а 9 и 5 сначала прибавляют к ним 3, вычитая из них соответственно. Если мрамор не равен ни одному из желаемых значений, он попадает в?0
ячейку, которая превращает любой мрамор в 0 мрамора 1 . Этот мрамор затем уменьшается и падает с доски.1 А
?n
мрамор технически превращает любой мрамор в мраморе между 0 и п. Это имеет приятный побочный эффект, который?0
превращает все в 0.источник
MATLAB - 35
Я бы обернул это в функцию с
n
единственным параметром.35 символов.
источник
ECMAScript 6, 24
При использовании обычного JavaScript это было бы 33:
источник
TI-BASIC,
2422Это кодирует возможные выходные данные в справочной таблице, хранящейся как число с плавающей запятой base-11; (N + 1) -я основа-11 после десятичной точки извлекается из таблицы, чтобы получить значение перевернутой цифры. В базе 11 число есть
.106003A097
, а цифры этого меньше единицы точно0,-1,5,-1,-1,2,9,-1,8,6
.Трюк edc65 по вычитанию единицы в случае 6 приводит к этому 24-байтовому решению, где
⑩^(
есть один однобайтовый токен:Строковый подход составляет 29 байтов:
Подход массива (который также использовал Ypnpyn) составляет 30 байтов, при условии, что число хранится в X:
24 -> 22: убраны две лишние цифры точности в магической константе.
источник
C - 47 байт [было 48 байт]
Чтобы добавить ввод / вывод (что не всегда выполняются другие ответы) для 86 байтов:
источник
Python - 34
источник
f=lambda n:ord(" "[n])-3
работы с космосом codeskulptor.org/#user34_Q7NbNvQy55_0.py	
: минус 3 по той причине, что -1 оставляет нулевой символ, который не годится, а минус 2 оставляет перевод строки, зарезервированный в pythonЯва, 58
59ИЛИ
источник
JavaScript
4237Запустите его на консоли вашего браузера
источник
C -
1171081067776 байтовНе лучший язык для игры в гольф, ну да ладно ...
Скомпилируйте
gcc progname.c -o progname
. (Игнорировать предупреждения или добавить-include stdio.h
в команду компиляции.)РЕДАКТИРОВАТЬ
В соответствии с предложением @ bebe, вот пример, который принимает входные данные от STDIN:
C -
6851 байтисточник
d=*b[1]-48
может быть хорошей идеейmain(){printf("%d",(int[]){1,0,6,0,0,3,10,0,9,7}[getchar()-48]-1);}
извините, что беспокою вас так сильно, но я считаю это немного короче.a[]={1,0,6,0,0,3,10,0,9,7};main(){printf("%d",a[getchar()-48]-1);}
main(){printf("%d","106003:097"[getchar()-48]-49);}
51 байтJ (24, функция)
(Панель ввода не играет хорошо. Вставьте следующее в интерпретатор Python, и мой ответ будет раскрыт :)
источник
Clojure - 36
источник
05AB1E , 13 байт (не конкурирующих)
Попробуйте онлайн!
-3 спасибо Эмигне .
Объяснение:
источник
0®5®®Y9®8 6¹@
должно работать так же.@
. Не часто вы видите, что использовали :))¹è
или)sè
.PHP ,
4839 байтБлагодаря Йорг Хюльсерманн
Попробуйте онлайн!
Старые версии
Попробуйте онлайн!
источник
Желе , 14 байт (не конкурирует)
Попробуйте онлайн!
Объяснение:
источник
ịV = žh‡
в 05AB1E