如果判断两个数通否除尽?数可以为整数或小数。

解决方案 »

  1.   

        var x1=1.5,x2=0.2;
        alert((1.5/0.2)%1==0)
        alert((1.5/0.3)%1==0)
      

  2.   

        alert(check(1.5,0.2))
        alert(check(1.5,0.3))
        alert(check(15,2))
        alert(check(15,3))
    function check(x1,x2){
        if(x2==0)return false;
        return (x1/x2)%1==0
    }
      

  3.   

    function check(x1,x2){
        if(x2==0)return false;
        return x1/x2*x2==x1
    }
      

  4.   


    function check(x1,x2){
        return (x1 * Math.pow(10,100) / x2).toString().indexOf('.') == -1;
    }
    alert(check(2,3));
    alert(check(2,5));
      

  5.   


    alert(check(10,3));
    alert(check(7,9));
    alert(check(4,5)); 
    全都是true
    不对
      

  6.   


    alert(check(1.5,0.3));
    alert(check(1.5,0.2));
    为false;不对,应该是true;
      

  7.   

    http://topic.csdn.net/u/20090402/20/7afc7279-5701-4d0b-a39f-03588d6583ed.html
      

  8.   

    ......<script type="text/javascript">
        alert(check(10,3)); 
        alert(check(7,9)); 
        alert(check(4,5)); 
        alert(check(1.5,0.2))
        alert(check(1.5,0.3))
        alert(check(15,2))
        alert(check(15,3))
        alert(check(1.5,2))
    function check(x1,x2){
        if(x2==0)return false;
        while(x1%1!=0)x1=x1*10;
        while(x2%1!=0)x2=x2*10;
        
        var r1=getItem(x1);
        var r2=getItem(x2);
        for(var i=r2.length-1;i>=0;i--){
            for(var j=0,k=0;j<r1.length;j++){
                if(k==0 && r2[i]==r1[j]){
                    k=1;
                    r2.pop();
                    delete r1[j];
                }
            }
        }
        
        return r2.length==0;
    }
    function getItem(x){
        var r=[];
        for(var i=2;i<=x;i++){
            if(x%i==0){;
                if(i!=2 && i!=5)r[r.length]=i;
                x=x/i;
                i-=1;
            }
        }
        return r;
    }
    </script>
      

  9.   

    ......<script type="text/javascript">
        alert(check(10,3)); 
        alert(check(7,9)); 
        alert(check(4,5)); 
        alert(check(1.5,0.2))
        alert(check(1.5,0.3))
        alert(check(15,2))
        alert(check(15,3))
        alert(check(1.5,2))
    function check(x1,x2){
        if(x2==0)return false;
        while(x1%1!=0)x1=x1*10;
        while(x2%1!=0)x2=x2*10;
        
        var r1=getItem(x1);
        var r2=getItem(x2);
        for(var i=r2.length-1;i>=0;i--){
            for(var j=0,k=0;j<r1.length;j++){
                if(k==0 && r2[i]==r1[j]){
                    k=1;
                    r2.pop();
                    delete r1[j];
                }
            }
        }
        
        return r2.length==0;
    }
    function getItem(x){
        var r=[];
        for(var i=2;i<=x;i++){
            if(x%i==0){;
                if(i!=2 && i!=5)r[r.length]=i;
                x=x/i;
                i-=1;
            }
        }
        return r;
    }
    </script>
      

  10.   


    <script>
     var isDivisible = function(num1,num2){
      new String(num1/num2*1000000000000000).indexOf(".") == -1?alert("除尽"):alert("除不尽")
     }
     isDivisible(7,9);
     isDivisible(10,3); 
     isDivisible(10,5); 
     isDivisible(1.5,0.2);
     isDivisible(1.5,0.3);
     isDivisible(15,2);
     isDivisible(15,3);
     isDivisible(1.5,2);
    </script>
      

  11.   

    isDivisible(1.5,0.0000000000000000000002);
      

  12.   

    javascript要做到短小精悍,正常情况下满足需求就可以了。
    如此贴,正常情况下一般不会出现0.0000000000000000000002这样的数据。