public class Solution {
public String fractionToDecimal(int numerator, int denominator) {
if (numerator == 0) {
return "0";
}
if (denominator == 0) {
return "";
}
String result = "";
if ((numerator < 0) ^ (denominator < 0)) {
result += "-";
}
long num = Math.abs((long)numerator);
long den = Math.abs((long)denominator);
long res = num / den;
result += String.valueOf(res);
long rem = (num % den) * 10;
if (rem == 0) {
return result;
}
result += ".";
HashMap<Long, Integer> reminder = new HashMap<Long, Integer>();
while ( rem != 0) {
if (reminder.containsKey(rem)) {
int start = reminder.get(rem);
String nonrepeat = result.substring(0, start);
String repeat = result.substring(start, result.length());
result = nonrepeat + "(" + repeat +")";
return result;
}
reminder.put(rem, result.length());
res = rem / den;
result += String.valueOf(res);
rem = (rem % den) * 10;
}
return result;
}
}
Faction to Recurring Decimal
最新推荐文章于 2020-02-18 17:45:21 发布