Wyzwanie
Weź liczbę i wyślij ją 4 cyframi lub mniej, używając liter i cyfr. Na przykład; 270,030
zamieniłby się w 270K
.
Klucz
Miliardy -> B
Milion -> M
Tysiąc -> K
Zasady
- Możesz zaakceptować liczby wejściowe zawierające przecinki rozdzielane co trzy miejsca dziesiętne (np.
123,456,789
). - Zaokrąglić do najbliższego, w połowie.
- Liczby wzrosną tylko do
999,499,999,999
. - Część mantysy odpowiedzi powinna wynosić co najmniej 1.
- Wszystkie litery muszą być wielkie i jak określono powyżej.
- Wyjścia muszą składać się z 4 lub mniej cyfr. (w tym takich jak litery
B
,K
iM
) - Wyniki muszą być możliwie matematycznie dokładne. Przykład:
15,480
->20K
NIE OK15,480
->15.5K
DOBRY
- Jeśli istnieje wiele wyników o tej samej matematycznej precyzji, zwróć jedno z nich. Przykład:
1000
->1000
DOBRY1000
->1K
DOBRY
Przykłady:
1 234 567 -> 1,23 mln 999 500 -> 1 mln 999,499 -> 999 tys 102 -> 102 1000 -> 1 tys 1001 -> 1001 100 000 -> 100 tys 12 345 678,912 -> 12,3B 1 452 815 612 -> 1,45 B.
Zgłoszenia
- To jest golf-golf, więc wygrywa najkrótsze rozwiązanie w każdym języku
- Obowiązują standardowe luki
T -> trillion
w kluczu), więc założyłem, że to był górny limit. Zapytam, ale w przeciwnym razie jest to utrata jednego bajtu.Python 3 , 127 bajtów
Wypróbuj online!
źródło
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 bajty
Pokaż fragment kodu
JavaScript (ES6), 80 bajtów
Pokaż fragment kodu
źródło