Ви, напевно, знаєте, що різні рівні репутації на Stack Exchange відформатовані по-різному, якщо їх бачити на сторінці питань / публікації. Є всі правила повторного форматування:
- якщо користувач має від 1 до 999 (одна-три цифри) повтор, він залишається таким, як є.
- якщо користувач має від 1000 до 9999 повторень (чотири цифри), він отримує кому як роздільник:
9,999
якщо користувач має від 10000 до 99999 повторень (п'ять цифр), він скорочується і округляється. Тобто, 16741 повтор відформатовано як
16.7k
, помітьте роздільник точок на відміну від коми для нижнього повтору (попередня точка).16750 вже матиме результат
16.8k
(оскільки це, здається, виправлено )16941 призводить до
16.9k
, 16950 раундів до17k
, як і 17014, наприклад.99941 раундів до
99.9k
, 99950 раундів до100k
(це те, що я насправді ненавиджу при повторному округленні на SE, тому що 100 000 - це така віха, а 99950 - ніде).
Якщо користувач має від 100000 до 999999 повторень, він округляється таким чином:
100100 раундів до
100k
, 100500 раундів до101k
. Річ у тому, що округлення робиться, але десяткова частина знімається (на відміну від чотиризначного повтору).100450 округлюється до
100k
, жодного кроку до круглого від 450 до 500. Також 100499 - все одно100k
.279843 раундів до
280k
, і 399999 раундів до400k
.
Як вхід, вам надається сира репутація та виводиться у форматі.
Ви можете вважати, що вхід не отримає недійсних чисел / не-чисел чи чисел із провідними нулями, тобто 0001234
.
Оскільки, схоже, Джон Скіт скоро не досягає 1 000 000, ваш код повинен бути максимально коротким, вам не потрібно обробляти представники, що перевищують один мільйон (тобто немає спеціальних випадків для 999500 і вище).
.
десятковою точкою і з суфіксом k
; з урахуванням застереження, що якщо третя значуща цифра є 0
і знаходиться праворуч від десяткової крапки, то значення відображається лише до двох значущих цифр. "Потім конкретні відсічки можуть бути переміщені до єдиного списку тесту випадки в кінці публікації, що зручніше для вставки копії в тестову рамку.