Prawdopodobnie wiesz, że różne poziomy reputacji na Stack Exchange są różnie sformatowane, gdy są widoczne na stronie pytań / postu. Istnieją wszystkie reguły formatowania powtórzeń:
- jeśli użytkownik ma od 1 do 999 powtórzeń (od jednej do trzech cyfr), pozostaje niezmieniony.
- jeśli użytkownik ma 1000 do 9999 powtórzeń (cztery cyfry), otrzymuje przecinek jako separator:
9,999 jeśli użytkownik ma od 10000 do 99999 powtórzeń (pięć cyfr), zostanie skrócony i zaokrąglony. To znaczy, powtórzenie 16741 jest sformatowane jako
16.7k, zwróć uwagę na separator kropki w przeciwieństwie do przecinka dla niższego powtórzenia (poprzedni punkt).16750 już spowoduje
16.8k(ponieważ wydaje się to naprawione )16941 powoduje
16.9k, 16950 zaokrągla w górę17k, a także 17014, na przykład.99941 rund do
99.9k, 99950 rund do100k(jest to coś, czego tak naprawdę nienawidzę zaokrąglaniem powtórzeń na SE, ponieważ 100 000 to taki kamień milowy, a 99950 nie jest w pobliżu).
Jeśli użytkownik ma 100000 do 999999 powtórzeń, jest zaokrąglany w ten sposób:
100100 zaokrągla w dół do
100k, 100500 zaokrągla w górę do101k. Chodzi o to, że zaokrąglanie jest zakończone, ale część dziesiętna jest usuwana (w przeciwieństwie do czterocyfrowego powtórzenia).100450 zaokrągla w dół do
100k, nie ma kroku, aby zaokrąglić 450 do 500. Ani 100499 - nadal jest100k.279843 zaokrągla w górę
280ki 399999 zaokrągla do400k.
Jako dane wejściowe otrzymujesz surową reputację i wyprowadzasz ją w formacie sformatowanym.
Możesz wziąć pod uwagę, że dane wejściowe nie otrzymają żadnych niepoprawnych liczb / nieliczb lub liczb z zerami wiodącymi, tj 0001234.
Ponieważ Jon Skeet nie wydaje się wkrótce osiągać 1 000 000, twój kod musi być tak krótki, jak to możliwe , nie musisz zajmować się powtórzeniem większym niż milion (tj. Nie ma specjalnych przypadków dla 999500 i wyższych).
.przecinkiem oraz z przyrostkiem k; z zastrzeżeniem, że jeśli trzecia znacząca cyfra jest 0i jest po prawej stronie przecinka dziesiętnego, wówczas wartość jest wyświetlana tylko do 2 cyfr znaczących. ”Określone wartości odcięcia można następnie przenieść na pojedynczą listę testów przypadki na końcu postu, co jest wygodniejsze w przypadku wklejania kopii do środowiska testowego.