输入两个数 判断是否能被除尽 如 1/3不能被除尽 1/4可以被除尽 用js如何验证

解决方案 »

  1.   

    之前玩过这个算法题:算法题,分数变小数,路过有分function fraction2decimal(m, n) {
    var num = {};
    var i = 0;
    var x = parseInt(m / n);
    m = m % n;
    var result = "";
    while (m != 0 && !(m in num)) {
    num[m] = i++;
    result += parseInt(m * 10 / n);
    m = m * 10 % n;  
    }
    if (m) {
    var index = num[m];
    return x + ". " + result.substring(0, index) + "( " + result.substring(index) + ") ";
    }
    return x + ". " + result;
    }document.open();
    var data = ["1/3", "1/4", "1/7", "1/9", "1/21", "3/13", "17/11", "8/29"];
    for (var i = 0; i < data.length; i++) {
    var m = data[i].match(/(\d+)\/(\d+)/);
    if (!m) continue;
    document.write(data[i]);
    document.write("=");
    document.write(fraction2decimal(+m[1], +m[2]));
    document.write("<br/>");
    }
    document.close();输出
    1/3=0.(3) 
    1/4=0. 25
    1/7=0.(142857) 
    1/9=0.(1) 
    1/21=0.(047619) 
    3/13=0.(230769) 
    17/11=1.(54) 
    8/29=0.(2758620689655172413793103448) 
    楼主的需求只需要判断最后m是不是零。
    零就是可以除尽。
    return !m;