Fraction to Recurring Decimal
https://leetcode.com/problems/fraction-to-recurring-decimal/
by Hari Menon
JavaScript
//
// https://leetcode.com/problems/fraction-to-recurring-decimal/
//
/**
* @param {number} numerator
* @param {number} denominator
* @return {string}
*/
var fractionToDecimal = function(numerator, denominator) {
if (numerator === 0) return '0';
var result = '';
result += (numerator > 0) ^ (denominator > 0) ? '-' : '';
var num = Math.abs(numerator),
den = Math.abs(denominator);
result += Math.floor(num / den);
num %= den;
if (num === 0) {
return result;
}
result += '.';
var map = {};
while (num !== 0) {
map[num] = result.length;
num *= 10;
result += Math.floor(num / den);
num %= den;
var repeatingFractionStart = map[num];
if (repeatingFractionStart !== undefined) {
result = result.substring(0, repeatingFractionStart) + '(' + result.substring(repeatingFractionStart) + ')';
break;
}
}
return result;
};
console.log(fractionToDecimal(17, 6));
console.log(fractionToDecimal(17, 2));