Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 166. Fraction to Recurring Decimal
題目:

解答:
class Solution {
public:
string fractionToDecimal(int numerator, int denominator) {
if (numerator == 0) {
return "0";
}
string ans;
if (numerator < 0 ^ denominator < 0) {
ans += "-";
}
long n = labs(numerator);
long d = labs(denominator);
ans += to_string(n / d);
long rem = n % d;
if (rem == 0) {
return ans;
}
ans += ".";
unordered_map<long, int> q;
while (rem) {
if (q.count(rem)) {
ans.insert(q[rem], "(");
ans += ")";
break;
}
q[rem] = ans.size();
rem *= 10;
ans += to_string(rem / d);
rem %= d;
}
return ans;
}
};