var a, b, c, d, e;a+b+c+d+e=27;c-a=3;b+e=cc>a>b;
c>d>b;
c>e>b;

解决方案 »

  1.   

    <script>
    for(var i=10000;i<99999;i++)
    {
    var k=i.toString();
    var k1=parseInt(k.substr(0,1));
    var k2=parseInt(k.substr(1,1));
    var k3=parseInt(k.substr(2,1));
    var k4=parseInt(k.substr(3,1));
    var k5=parseInt(k.substr(4,1));if(validate(k1,k2,k3,k4, k5))
    document.write(i+"\t");
    }function validate(k1,k2,k3,k4, k5)
    {
    if((k1+k2+k3+k4+k5)!=27)
         return false;
    if((k3-k1)!=3)
    return false;
    if((k2+k5)!=k3)
    return false;
    if(k1>k3 || k2>k3 || k4>k3 || k5>k3)
    return false;
    if(k2>k1 || k2>k3 || k2>k4 || k2>k5)
    return false;
     return true;
    }
    </script>
      

  2.   

    注意第一条不仅意味这和为27,而且意味着这个数可以被3整除,这样dogfish(dogfish) 程序至少可以提高速度3倍。又因为第二位数最小,且27/5=5.4,所以第二位不可能大于5,因此程序又可以提高2倍。又因为第三位减第一位等于3,因此就决定了第一位不能大于6,似乎又可以提高啦,因此循环可以改良,自己试试吧