Tantangan
Ambil nomor dan keluarkan dengan 4 digit atau kurang menggunakan huruf dan angka. Sebagai contoh; 270,030
akan berubah menjadi 270K
.
Kunci
Miliar -> B
Juta -> M
Ribuan -> K
Aturan
- Anda dapat memilih untuk menerima nomor input yang menyertakan koma yang membatasi setiap tiga tempat desimal (seperti
123,456,789
). - Membulatkan ke terdekat, setengah atas.
- Angka hanya akan naik ke
999,499,999,999
. - Bagian mantissa dari jawabannya harus setidaknya 1.
- Semua huruf harus huruf besar dan seperti yang ditentukan di atas.
- Output harus 4 digit atau kurang. (termasuk surat-surat seperti
B
,K
, danM
) - Keluaran harus setepat matematis mungkin. Contoh:
15,480
->20K
TIDAK OK15,480
->15.5K
BAIK
- Jika ada beberapa keluaran dengan ketepatan matematika yang sama, kembalikan salah satunya. Contoh:
1000
->1000
BAIK1000
->1K
BAIK
Contoh:
1.234.567 -> 1.23M 999.500 -> 1 jt 999.499 -> 999K 102 -> 102 1000 -> 1K 1001 -> 1001 100.000 -> 100K 12.345.678.912 -> 12,3B 1.452.815.612 -> 1.45B
Pengajuan
- Ini adalah kode-golf , sehingga solusi terpendek dalam setiap bahasa menang
- Celah Standar Berlaku
T -> trillion
di kunci), jadi saya berasumsi ini adalah batas atas. Saya akan bertanya, tetapi kerugian satu byte sebaliknya.Python 3 , 127 byte
Cobalah online!
sumber
def f(n):l=len(str(n))-4;return[n,f"{round(n,~l):,}"[:4].replace(*",.").rstrip('.')+"KMBT"[-~l//3]][n>9999]
JavaScript (ES7), 74 byte
Tampilkan cuplikan kode
JavaScript (ES6), 80 byte
Tampilkan cuplikan kode
sumber