Если в качестве входных данных указать одну букву от A до Z (кроме J и K), выведите наименьшее неотрицательное целое число, содержащее эту букву в письменном виде. Предположим, что числа никогда не содержат слова «и», 101
как и «сто один», а не «сто один». Предположим, американский (короткий) подсчет, так что один миллион 10^6
и один миллиард 10^9
.
a 1000 one thousand
b 1000000000 one billion
c 1000000000000000000000000000 one octillion
d 100 one hundred
e 0 zero
f 4 four
g 8 eight
h 3 three
i 5 five
j
k
l 11 eleven
m 1000000 one million
n 1 one
o 0 zero
p 1000000000000000000000000 one septillion
q 1000000000000000 one quadrillion
r 0 zero
s 6 six
t 2 two
u 4 four
v 5 five
w 2 two
x 6 six
y 20 twenty
z 0 zero
J и K не являются частью спецификации ввода, поэтому ваше поведение для них не определено. Учитывая одну из вышеперечисленных букв, выведите (десятичное) число рядом с ней. Вы можете использовать ввод в нижнем или верхнем регистре, но вы не можете требовать, чтобы одни вводились строчными, а другие - прописными.
Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Ответы:
JavaScript (Node.js) ,
78 75 7473 байтаПопробуйте онлайн!
Как?
Каждое значение кодируется одним печатным символом. Мы используем диапазон ASCII[ 32..52 ] для кодирования n - 32 и диапазон [ 53..80 ] для кодирования 10n - 53 .
комментарии
источник
Рубин , 65 байт
Попробуйте онлайн!
Улучшения, вдохновленные комментариями ГБ.
Рубин , 70 байт
Попробуйте онлайн!
источник
i
была полезна. Сейчас до 65./// , 125 байт
Попробуйте онлайн!
Ввод добавляется в конец кода согласно методу ввода / вывода . Нижний колонтитул в приведенной выше ссылке TIO проверяет все буквы одновременно, как одну строку с разделителем новой строки, но код также отлично работает при вводе одного символа .
источник
Wolfram Language (Mathematica) , 50 байтов
Буквы b, c, m, p и q пропускаются по соображениям производительности при тестировании на TIO.
Попробуйте онлайн!
источник
Stax , 33 байта
Запустите и отладьте его
Процедура:
[3, 5, 7, 9, 11, -6, 1, 0, -24, -15, 0, 6, 2, 4, 5, 2, 6, 20, 0, -3, -9, -27, -2, 0, 4, 8]
используя кодовую точку. (с обертыванием)10
до этой степени, в противном случае оставить как есть.источник
Excel, 85 байт
2 бита для гольфа:
1E15
) экономит26 bytes
.CHOOSE
когда ничего не предоставлено0
, сохраняется, сохраняет4 bytes
источник
05AB1E , 36 байт
Порт @recursive 's Stax ответа .
Ввод в нижнем регистре.
Попробуйте онлайн или проверьте все тесты .
Объяснение:
Посмотрите эту подсказку 05AB1E (раздел Как сжимать большие целые числа? И Как сжимать целочисленные списки? ), Чтобы понять, почему
•—ßusδtθ}™-5„©‘öæH•
есть3133432551338094772548436198140408157771728287
и•—ÃŸusδtθ}™-5„©‘öæH•57в
есть[39,41,43,45,47,30,37,36,12,21,36,42,38,40,41,38,42,56,36,33,27,9,34,36,40,44]
.источник
Perl 5
-p
, 84 байтаПопробуйте онлайн!
источник
Python 3 , 103 байта
Попробуйте онлайн!
источник
C # (интерактивный компилятор Visual C #) ,
777468 байтКодирует вывод каждой буквы как× 10б , где a представлен 4 младшими битами символа, в то время как б представлен следующими пятью битами после этого. Использует заглавные буквы.
комментарии
Попробуйте онлайн!
источник
Perl 6 , 67 байт
Попробуйте онлайн!
Используется справочная таблица, где отрицательное число означает, что оно является отрицательным показателем степени, в противном случае это само число.
источник
05AB1E , 32 байта
Попробуйте онлайн!
источник
'binary'
, хаха. xD Но я думаю, иногда это может быть полезно. ;)Баш ,
129100 байтПопробуйте онлайн!
Попробуйте онлайн!Как это работает:
$ A: Base64 в кодировке «a» - «z»: числа меньше 100 сохраняются напрямую. Большие числа кодируются как количество нулей +30. (например: 1000 = 33, 100 = 32 и т. д.)
Извлеките одну букву из $ A в позиции, указанной в аргументе $ 1 (расшифровано base64, -10 для учета смещения 'a'). Base64 декодирует этот символ и сохраняет в c.
Если $ c больше 30, выведите «1» с нулями $ c-30. В противном случае выведите $ c.
источник
кувалда , 17 байт
Технически, это длина 133 бита, но на самом деле это не составляет 16,625 байта, как утверждает компрессор.
Это, вероятно, декодирует
(примерно так же, как мой ответ Mathematica), хотя я едва кодировал его (кажется, что мой компьютер имеет проблемы совместимости со всем), так что удачи, расшифровываю его снова, чтобы проверить. Возможно, я допустил некоторые ошибки при использовании кодера, поэтому будьте осторожны.
источник
Желе , 36 байт
Попробуйте онлайн!
Монадическая ссылка, принимающая строчную букву в качестве аргумента и возвращающая целое число. Возвращает
0
дляj
иk
.объяснение
источник
Сетчатка 0.8.2 , 89 байт
Попробуйте онлайн! Ссылка включает в себя тестовые случаи. Объяснение:
Дублируйте ввод.
Измените первую копию на (первую) цифру соответствующего результата.
Если число имеет кратное 3 конечным нулям, получите это кратное сейчас.
И фактически преобразовать его в соответствующее число конечных нулей. (Обратите внимание, что это будет проще, чем
*3*0
в Retina 1.)Исправить
d
.Исправьте
l
иy
и удалите все оставшиеся буквы.источник
PHP , 104 байта
Попробуйте онлайн!
У меня есть строка,
^FX]0483500GC10UL0624526P0
которая содержит один символ для каждой входной буквы от «а» до «я». Я извлекаю этот символ на основе ввода и сохраняю его$a
. Если символ не является цифрой, его код ASCII мод 30 будет сохранен в$b
.Если
$a
это цифра, печатается та же цифра, она используется для любого ввода, который требует вывода от 0 до 9 (например, «e», «f» и т. Д.).Иначе, если
$b
20 или 11, то же число напечатано, это используется для "l" и "y".В противном случае
$b
печатается цифра «1» с добавлением «0». Например, для ввода «a» символ представляет собой «^», код ASCII которого равен 94.94 % 30 = 4
и «1», дополненный до 4 с «0», будет «1000».источник