string fractionToDecimal(int numr, int denr) { string res; // Initialize result
// Create a map to store already seen remainders // remainderis used as keyand its positionin // result is stored as value. Note that we need // positionfor cases like 1/6. In this case, // the recurring sequence doesn't start from first // remainder. map<int, int> mp; mp.clear();
// Find firstremainder int rem = numr%denr;
// Keep finding remainder until either remainder // becomes 0or repeats while ( (rem!=0) && (mp.find(rem) == mp.end()) ) { // Store this remainder mp[rem] = res.length();
// Multiply remainder with 10 rem = rem*10;
// Append rem / denr to result int res_part = rem / denr; res += to_string(res_part);
近期评论