Diberikan string, yang terdiri dari awalan dan kemudian "illion", ubah angka ini menjadi bentuk standar.
Sebagai contoh:
"million" -> 10^6
"trillion" -> 10^12
"quattuordecillion" -> 10^45
Program ini harus mampu menangani input hingga Centillion, yaitu 10 ^ 303. Daftar nama dan nilai formulir standarnya dapat ditemukan di sini - perhatikan bahwa ini memberikan nilai untuk setiap kenaikan 10 ^ 3 hingga 10 ^ 63, tetapi kemudian berikan dalam kenaikan 10 ^ 30, namun polanya cukup mudah.
Program perlu menangani semua 100 kasus (bahkan yang tidak secara eksplisit diberikan oleh situs web yang disediakan) - berikut adalah beberapa contohnya:
"sexvigintillion" -> 10^81
"unnonagintillion" -> 10^276
"octotrigintillion" -> 10^117
Input dapat diberikan melalui STDIN, argumen fungsi atau hard-coded sebagai string.
Ini kode-golf, jadi kode terpendek menang!
code-golf
math
number
kolmogorov-complexity
James Williams
sumber
sumber
Jawaban:
Python 2 (
384368365348347 byte)(
if
Baris diberi indentasi dengan satu tab, dan sisanya dengan spasi tunggal.)Ini
c('million') == 10**6
harus menjadi kasus khusus karena'novem'
juga berakhir pada'm'
.Contoh:
Terima kasih kepada Falko karena mengaburkannya hingga 350 byte.
Untuk latihan saya mencoba menulis ulang ini sebagai one-liner menggunakan lambdas. Ini
404398390384380379 byte:sumber
return'10^'+str(3*k)
hanya akan menjadi 4 byte lagi.a
danb
ke dalam fungsi sebagai argumen kata kunci.1000**k
lebih pendek dari10**(3*k)
. Bertambahk
dengan3*d[p]
juga sama pendek.if'm'==s:k=6;d=[]
alih-alihreturn
pernyataan panjang kedua .JS (ES6),
292270Hanya mengerti angka-angka yang tertulis dalam daftar yang diberikan. OP tidak jelas tentang yang lain.
Contoh:
sumber
split(0)
denganmatch(/[A-Z][a-z]*/g)
menggunakan regex untuk mencocokkan setiap string.=>
.C, 235
Menangani semua 100 kasing. Program menggunakan stdin dan stdout.
Siapa yang butuh regex untuk membelah case unta?
Contoh
sumber
*U<95 ?
) dan semua baris baru?Clojure,
381377 byteContoh:
(c "Septuagintillion") ;; 1.0E213
sumber
Haskell, 204 byte (+9 untuk String yang diformat)
Di GHCi:
Mengganti
10^(
dengan"10^"++(show.
menambahkan 9 byte lainnya:Di GHCi:
Sunting: Saya harus memperbaiki
"quinquagintillion"
yang berisi"qua"
.sumber