Dada uma única letra de A a Z (exceto J e K) como entrada, imprima o menor número inteiro não negativo que contém essa letra em sua forma escrita. Suponha que os números nunca contenham a palavra "e", assim 101
como "cento e um", não "cento e um". Suponha a contagem americana (em pequena escala), então um milhão é 10^6
e um bilhão é 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 e K não fazem parte da especificação de entrada, portanto, seu comportamento é indefinido para eles. Dada uma das letras acima, imprima o número (decimal) próximo a ela. Você pode receber entradas em minúsculas ou maiúsculas, mas não pode exigir que algumas entradas sejam minúsculas e outras maiúsculas.
Isso é código-golfe , então a resposta mais curta em bytes vence.
code-golf
number
kolmogorov-complexity
Stephen
fonte
fonte
Respostas:
JavaScript (Node.js) ,
78 75 7473 bytesExperimente online!
Quão?
Comentado
fonte
Ruby , 65 bytes
Experimente online!
Melhorias inspiradas no comentário do GB.
Ruby , 70 bytes
Experimente online!
fonte
i
foi útil. Agora vamos para 65./// , 125 bytes
Experimente online!
A entrada é anexado ao fim do código, como por E / S de meta . O rodapé no link TIO acima testa todas as letras simultaneamente, como uma única string delimitada por nova linha, mas o código também funciona bem ao inserir um único caractere .
fonte
Wolfram Language (Mathematica) , 50 bytes
As letras b, c, m, peq são ignoradas por motivos de desempenho ao testar no TIO.
Experimente online!
fonte
Stax , 33 bytes
Execute e depure
Procedimento:
[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]
usando o codepoint. (com envolvente)10
para esse poder, caso contrário, deixe como está.fonte
Excel, 85 bytes
2 bits de golfe:
1E15
) salva26 bytes
.CHOOSE
quando nada é fornecido é0
, salva4 bytes
fonte
05AB1E , 36 bytes
Porto da resposta Stax do @recursive .
Entrada em minúsculas.
Experimente online ou verifique todos os casos de teste .
Explicação:
Consulte esta minha dica 05AB1E (seção Como compactar números inteiros grandes? E Como compactar listas de números inteiros? ) Para entender por que
•—ßusδtθ}™-5„©‘öæH•
é3133432551338094772548436198140408157771728287
e•—ß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]
.fonte
Perl 5
-p
, 84 bytesExperimente online!
fonte
Python 3 , 103 bytes
Experimente online!
fonte
C # (Compilador interativo do Visual C #) ,
777468 bytesComentado
Experimente online!
fonte
Perl 6 , 67 bytes
Experimente online!
Usa uma tabela de pesquisa em que um número negativo significa que é o negativo do expoente, caso contrário, é o próprio número.
fonte
05AB1E , 32 bytes
Experimente online!
fonte
'binary'
, haha. xD Mas acho que às vezes pode ser útil assim. ;)Bash ,
129100 bytesExperimente online!
Experimente online!Como funciona:
$ A: Base64 codificado "a" - "z": números menores que 100 são armazenados diretamente. Números maiores são codificados como o número de zeros +30. (ex: 1.000 = 33, 100 = 32, etc.)
Extraia uma letra de $ A na posição especificada no argumento $ 1 (base64 decodificada, -10 para contabilizar o deslocamento de 'a'). Base64 decodifica esse caractere e armazena em c.
Se $ c for maior que 30, imprima "1" preenchido com zeros de $ c-30. Senão, imprima $ c.
fonte
Marreta , 17 bytes
Tecnicamente, isso tem 133 bits, mas isso não gera 16.625 bytes, como afirma o compressor.
Provavelmente decodifica
(aproximadamente o mesmo que a minha resposta do Mathematica), embora mal o tenha codificado (parece que meu PC tem problemas de compatibilidade com tudo), então boa sorte decodificá-lo novamente para verificar. Posso ter cometido alguns erros ao usar o codificador, portanto, tenha cuidado.
fonte
Gelatina , 36 bytes
Experimente online!
Um link monádico usando uma letra minúscula como argumento e retornando um número inteiro. Retorna
0
paraj
ek
.Explicação
fonte
Retina 0.8.2 , 89 bytes
Experimente online! O link inclui casos de teste. Explicação:
Duplique a entrada.
Altere a primeira cópia para o (primeiro) dígito do resultado relevante.
Se o número tiver um múltiplo de três zeros à direita, obtenha esse múltiplo agora.
Na verdade, converta-o no número relevante de zeros à direita. (Observe que isso seria simplificado
*3*0
na Retina 1.)Conserte
d
.Arrumar
l
ey
e remover quaisquer cartas restantes.fonte
PHP , 104 bytes
Experimente online!
Eu tenho uma seqüência de caracteres
^FX]0483500GC10UL0624526P0
que contém um único caractere para cada letra de entrada de "a" a "z". Eu extraio esse caractere com base na entrada e o armazeno$a
. Se o caractere não for um dígito, seu código ASCII mod 30 será armazenado$b
.Se
$a
for um dígito, o mesmo dígito é impresso, é usado para qualquer entrada que precise de uma saída entre 0 e 9 (como "e", "f", etc).Caso
$b
contrário, se for 20 ou 11, o mesmo número é impresso, é usado para "l" e "y".Senão, o dígito "1" preenchido
$b
com "0" s é impresso. Por exemplo, para a entrada de "a", o caractere é "^" que possui um código ASCII de 94.94 % 30 = 4
"1" preenchido com 4 e "0" s será "1000".fonte