Diberikan satu huruf dari A ke Z (kecuali J dan K) sebagai input, menghasilkan bilangan bulat non-negatif terkecil yang mengandung huruf itu dalam bentuk tertulis. Asumsikan angka tidak pernah mengandung kata "dan", demikian 101
pula "seratus satu", bukan "seratus satu". Asumsikan penghitungan Amerika (skala pendek), jadi satu juta adalah 10^6
dan satu miliar adalah 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 dan K bukan bagian dari spesifikasi input, jadi perilaku Anda tidak ditentukan untuk mereka. Diberikan salah satu huruf di atas, tampilkan angka (desimal) di sebelahnya. Anda dapat mengambil input dalam huruf kecil atau huruf besar, tetapi Anda tidak dapat mengharuskan beberapa input menggunakan huruf kecil dan lainnya.
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
sumber
Jawaban:
JavaScript (Node.js) ,
78 75 7473 byteCobalah online!
Bagaimana?
Setiap nilai dikodekan dengan satu karakter yang dapat dicetak. Kami menggunakan rentang ASCII untuk menyandikan dan kisaran untuk menyandikan .[ 32..52 ] n - 32 [ 53..80 ] 10n−53
Berkomentar
sumber
Ruby , 65 byte
Cobalah online!
Perbaikan terinspirasi oleh komentar GB.
Ruby , 70 byte
Cobalah online!
sumber
i
berguna. Sekarang turun ke 65./// , 125 byte
Cobalah online!
Input ditambahkan ke akhir dari kode, per I / O meta . Footer di tautan TIO di atas menguji semua huruf secara bersamaan, sebagai string yang dibatasi oleh baris baru, tetapi kode juga berfungsi dengan baik saat memasukkan satu karakter .
sumber
Bahasa Wolfram (Mathematica) , 50 byte
Huruf b, c, m, p dan q dilewati karena alasan kinerja saat menguji pada TIO.
Cobalah online!
sumber
Stax , 33 byte
Jalankan dan debug itu
Prosedur:
[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]
menggunakan codepoint. (dengan bungkus)10
ke kekuatan itu, jika tidak biarkan apa adanya.sumber
Excel, 85 byte
2 bit Golfy:
1E15
) menyimpan26 bytes
.CHOOSE
ketika tidak ada yang disediakan adalah0
, simpan4 bytes
sumber
05AB1E , 36 byte
Port of @recursive 's Stax menjawab .
Masukan dalam huruf kecil.
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
Lihat tip tambang 05AB1E ini (bagian Bagaimana cara mengompresi bilangan bulat besar? Dan Cara mengompresi daftar bilangan bulat? ) Untuk memahami mengapa
•—ßusδtθ}™-5„©‘öæH•
ini3133432551338094772548436198140408157771728287
dan•—ßusδtθ}™-5„©‘öæH•57в
sekarang[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]
.sumber
Perl 5
-p
, 84 byteCobalah online!
sumber
Python 3 , 103 byte
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) ,
777468 byteBerkomentar
Cobalah online!
sumber
Perl 6 , 67 byte
Cobalah online!
Menggunakan tabel pencarian di mana angka negatif berarti itu adalah negatif dari eksponen, jika tidak itu adalah angka itu sendiri.
sumber
05AB1E , 32 byte
Cobalah online!
sumber
'binary'
, haha. xD Tapi saya kira ini bisa berguna seperti ini kadang-kadang. ;)Bash ,
129100 byteCobalah online!
Cobalah online!Bagaimana itu bekerja:
$ A: Base64 disandikan "a" - "z": angka yang kurang dari 100 disimpan secara langsung. Angka yang lebih besar dikodekan sebagai angka nol +30. (mis: 1.000 = 33, 100 = 32, dll.)
Ekstrak satu huruf dari $ A pada posisi yang ditentukan dalam argumen $ 1 (base64 diterjemahkan, -10 ke akun untuk offset 'a'). Base64 mendekode karakter itu dan menyimpannya di c.
Jika $ c lebih besar dari 30, cetak "1" empuk dengan $ c-30 nol. Lain, cetak $ c.
sumber
Sledgehammer , 17 byte
Secara teknis, ini adalah 133 bit, tetapi itu tidak benar-benar menghasilkan 16,625 byte, seperti yang dikatakan oleh kompresor.
Ini mungkin diterjemahkan ke
(kira-kira sama dengan jawaban Mathematica saya), walaupun saya hampir tidak dapat mengkodekannya (sepertinya PC saya memiliki masalah kompatibilitas dengan semuanya), jadi semoga berhasil mendekode lagi untuk memeriksa. Saya mungkin telah membuat beberapa kesalahan saat menggunakan encoder, jadi berhati-hatilah.
sumber
Jelly , 36 byte
Cobalah online!
Tautan monadik yang menggunakan huruf kecil sebagai argumennya dan mengembalikan bilangan bulat. Pengembalian
0
untukj
dank
.Penjelasan
sumber
Retina 0.8.2 , 89 byte
Cobalah online! Tautan termasuk kasus uji. Penjelasan:
Gandakan input.
Ubah salinan pertama menjadi digit (pertama) dari hasil yang relevan.
Jika angka memiliki kelipatan 3 angka nol, dapatkan kelipatan itu sekarang.
Dan benar-benar mengubahnya menjadi jumlah nol trailing yang relevan. (Perhatikan bahwa ini akan disederhanakan
*3*0
dalam Retina 1.)Perbaiki
d
.Perbaiki
l
dany
dan hapus semua huruf yang tersisa.sumber
PHP , 104 byte
Cobalah online!
Saya memiliki string
^FX]0483500GC10UL0624526P0
yang menampung satu karakter untuk setiap huruf input dari "a" hingga "z". Saya mengekstrak karakter ini berdasarkan input dan menyimpannya di$a
. Jika karakter bukan digit, kode ASCII mod 30 akan disimpan$b
.Jika
$a
digit, digit yang sama dicetak, ini digunakan untuk input apa pun yang membutuhkan output antara 0 dan 9 (seperti "e", "f", dll).Jika
$b
20 atau 11, nomor yang sama dicetak, ini digunakan untuk "l" dan "y".Jika tidak, digit "1" yang diisi
$b
dengan "0" dicetak. Misalnya untuk input "a", karakternya adalah "^" yang memiliki kode ASCII 94.94 % 30 = 4
dan "1" yang berisi 4 dengan "0" akan "1000".sumber