Desafío
Tome un número y emítalo con 4 dígitos o menos usando letras y números. Por ejemplo; 270,030
se convertiría en 270K
.
Llave
Mil millones -> B
Millones -> M
Mil -> K
Reglas
- Puede elegir aceptar números de entrada que incluyan comas que delimiten cada tres lugares decimales (como
123,456,789
). - Redondear al más cercano, medio arriba.
- Los números solo subirán
999,499,999,999
. - La parte de mantisa de la respuesta debe ser al menos 1.
- Todas las letras deben ser mayúsculas y como se especifica arriba.
- Las salidas deben tener 4 o menos dígitos. (incluyendo cartas, tales como
B
,K
, yM
) - Las salidas deben ser tan matemáticamente precisas como sea posible. Ejemplo:
15,480
->20K
NO ESTÁ BIEN15,480
->15.5K
BUENO
- Si hay varias salidas con la misma precisión matemática, devuelva cualquiera de ellas. Ejemplo:
1000
->1000
BUENO1000
->1K
BUENO
Ejemplos:
1,234,567 -> 1.23M 999,500 -> 1M 999,499 -> 999K 102 -> 102 1000 -> 1K 1001 -> 1001 100,000 -> 100K 12,345,678,912 -> 12.3B 1,452,815,612 -> 1.45B
Envíos
- Este es el código de golf , por lo que gana la solución más corta en cada idioma
- Se aplican lagunas estándar
T -> trillion
en la clave), por lo que supuse que este era el límite superior. Preguntaré, pero es una pérdida de un byte de lo contrario.Python 3 , 127 bytes
Pruébalo en línea!
fuente
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 bytes
Mostrar fragmento de código
JavaScript (ES6), 80 bytes
Mostrar fragmento de código
fuente