Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for [old] Repeating Decimals by Sim0000
"use strict";
function convert(numerator, denominator) {
// integer part
const int_part = Math.floor(numerator / denominator);
numerator %= denominator;
// fraction part
let r = [];
let x = "";
while(r.indexOf(numerator) < 0){
r.push(numerator);
x += Math.floor(10 * numerator / denominator);
numerator = 10 * numerator % denominator;
}
// form output
const ix = r.indexOf(numerator);
let result = "" + int_part + "." + x.substr(0, ix);
if(x.substr(ix) != "0") result += "(" + x.substr(ix) + ")";
return result;
}
var assert = require('assert');
if (!global.is_checking) {
// These "asserts" are used for self-checking and not for an auto-testing
assert.equal(convert(1, 3), "0.(3)")
assert.equal(convert(5, 3), "1.(6)")
assert.equal(convert(3, 8), "0.375")
assert.equal(convert(7, 11), "0.(63)")
assert.equal(convert(29, 12), "2.41(6)")
assert.equal(convert(11, 7), "1.(571428)")
assert.equal(convert(0, 117), "0.")
console.log("Coding complete? Click 'Check' to earn cool rewards!");
}
July 27, 2018
Comments: