Ви, напевно, знаєте, що різні рівні репутації на 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і знаходиться праворуч від десяткової крапки, то значення відображається лише до двох значущих цифр. "Потім конкретні відсічки можуть бути переміщені до єдиного списку тесту випадки в кінці публікації, що зручніше для вставки копії в тестову рамку.