笔试结束后,写了写第二道题
没有进行测试,不知道大数情况下会不会出错
function loopFractional (a, b) {
    var isExit = function (i) {
        if(mods[i] != undefined) {
            return true;
        }
        return false;
    }
    var ints = parseInt(a/b);
    var j = 2;
    var mods = {};
    var flag = true;
    if(ints != 0) {
        var r = ints + '.';
    }else {
        var r = 0 + '.';
    }
    a = a%b;
    var i = 0;
    var s = '';
    var loop = false;
    while(j <= 10000 && flag) {
        j++;
        a = a * 10;
        //如果a能整除b,那么存入余数,跳出循环。
        if(a % b == 0) {
            mods[a%b] = j;
            s += a / b;
            flag = false;
            break;
        }
        //如果不能整除,检测a/b的余数是否已经存在,如果已经存在,那么跳出循环.
        if(isExit(a % b)) {
            i = mods[a % b];
            loop = true;
            flag = false;
            break;
        }
        //如果不能整除,检测a/b的余数不存在,存入余数,继续循环
        if(a % b != 0) {
            mods[a % b] = j;
            s += parseInt(a / b);
            a = a % b;
            a = a * 10;
        }
    }
    var result = r + s;
    console.log(i, j);
    if(j <= 10000) {
        var suffix = '(' + result.substr(i-1, j - i) + ')';
    }
    if(!loop) {
        return result;
    }
    return result + suffix;
}