d = [2,1,3,4,5,6,7,8,9];
d.sort(function(a,b){return b-a});
a = b = 0;
for(i=0; i<d.length-1; i+=2) {
  if((a * 10 + d[i]) * (b * 10 + d[i+1]) > (a * 10 + d[i+1]) * (b * 10 + d[i])) {
    a = a * 10 + d[i];
    b = b * 10 + d[i+1];
  }else {
    a = a * 10 + d[i+1];
    b = b * 10 + d[i];
  }
}
    
document.write('a=' + a + ' b=' + b);
a=8753 b=9642 

解决方案 »

  1.   

    7楼的,a b二个数,用到了8个数,不是这样子,a b二个数共只能取5个数从1-9取五个数,取的重不能重,组成二个数,数不能重,然后相乘,得到最大值
    比如第一个数是由三个数组成,第二个数是由二个数组成
    789*65=xx
    768*95=xx
    这样子
    请问,这二个数应该如何取,才可得到最大值
    程序怎么写呢
      

  2.   


    <script type="text/javascript">
    var numberArray = ["5", "6", "7", "8", "9"] ;
    var index_a ;
    var index_b ;
    var index_i ;
    var firstNumber = '' ;
    var secondNumber = '' ;
    var tempSecondNumber = '' ;
    var max = 0 ;
    for( index_a = 0; index_a < numberArray.length; index_a++) {
    for(index_b = index_a + 1; index_b < numberArray.length; index_b++ ) {
    firstNumber = (numberArray[index_a] + numberArray[index_b]) * 1 ;
    for(index_i = 0; index_i < numberArray.length; index_i++) {
    if(index_i !== index_a && index_i !== index_b ){
    tempSecondNumber += numberArray[index_i] ;
    }
    }
    if(firstNumber * (tempSecondNumber * 1) > max) {
    max = firstNumber * (secondNumber * 1) ;
    secondNumber = tempSecondNumber ;
    }
    tempSecondNumber = '' ;
    }
    } alert("最大数是:" + firstNumber + "*" + secondNumber + "=" + max) ;
    </script>
    没写注释,楼主自己看看吧。
      

  3.   

    <script type="text/javascript">
        var numberArray = ["9", "8", "7", "6", "5"] ;
        var index_a ;
        var index_b ;
        var index_i ;
    var firstNumber = '' ;
        var tempFirstNumber = '' ;
        var secondNumber = '' ;
        var tempSecondNumber = '' ;
        var max = 0 ;
        for( index_a = 0; index_a < numberArray.length; index_a++) {
            for(index_b = index_a + 1; index_b < numberArray.length; index_b++ ) {
                tempFirstNumber = (numberArray[index_a] + numberArray[index_b]) * 1 ;

                for(index_i = 0; index_i < numberArray.length; index_i++) {
                    if(index_i !== index_a && index_i !== index_b ){
                        tempSecondNumber += numberArray[index_i] ;
                    }
                }
                if(tempFirstNumber * (tempSecondNumber * 1) > max) {
                    firstNumber = tempFirstNumber;
    secondNumber = tempSecondNumber ;
    max = firstNumber * (secondNumber * 1) ;
                }
                tempSecondNumber = '' ;
            }
        }
     
        alert("最大数是:" + firstNumber + "*" + secondNumber + "=" + max) ;
    </script>
    根据10楼的修改了下
      

  4.   


    没有考虑换位。堆了一下代码,有时间楼主可以整理整理。<script type="text/javascript">
    var numberArray = ["5", "6", "7", "8", "9"] ;
    var index_a ;
    var index_b ;
    var index_i ;
    var firstNumber = '' ;
    var secondNumber = '' ;
    var first = [] ;
    var second = [] ;
    var max = 0 ;
    for( index_a = 0; index_a < numberArray.length; index_a++) {
    first.push(index_a) ;
    for(index_b = index_a + 1; index_b < numberArray.length; index_b++ ) {
    first.push(index_b) ;
    for(index_i = 0; index_i < numberArray.length; index_i++) {
    if(index_i !== index_a && index_i !== index_b ){
    second.push(index_i) ;
    }
    }
    for(var i = 0; i < 2; i++) {
    firstNumber = numberArray[first[i]] + numberArray[first[1 - i]] ;
    for(var x = 0; x < 3; x++) {
    for(var y = 0; y < 3; y++) {
    for(var z = 0; z < 3; z++) {
    if(x !== y && x !== z && y !== z) {
    secondNumber = numberArray[second[x]] + numberArray[second[y]] + numberArray[second[z]] ;
    if((firstNumber * 1) * (secondNumber * 1) > max) {
    max = (firstNumber * 1) * (secondNumber * 1) ;
    }
    }
    }
    }
    }
    }
    second.length = 0 ;
    }
    first.length = 0 ;
    } alert("最大数是:" + firstNumber + "*" + secondNumber + "=" + max) ;
    </script>
      

  5.   


    <script type="text/javascript">
    var numberArray = ["5", "6", "7", "8", "9"] ;
    var index_a ;
    var index_b ;
    var index_i ;
    var firstNumber = '' ;
    var secondNumber = '' ;
    var first = [] ;
    var second = [] ;
    var max = 0 ;
    for( index_a = 0; index_a < numberArray.length; index_a++) {
    first.push(index_a) ;
    for(index_b = index_a + 1; index_b < numberArray.length; index_b++ ) {
    first.push(index_b) ;
    for(index_i = 0; index_i < numberArray.length; index_i++) {
    if(index_i !== index_a && index_i !== index_b ){
    second.push(index_i) ;
    }
    }
    for(var i = 0; i < 2; i++) {
    firstNumber = numberArray[first[i]] + numberArray[first[1 - i]] ;
    console.log("firstNumber:" + firstNumber) ;
    for(var x = 0; x < 3; x++) {
    for(var y = 0; y < 3; y++) {
    for(var z = 0; z < 3; z++) {
    if(x !== y && x !== z && y !== z) {
    secondNumber = numberArray[second[x]] + numberArray[second[y]] + numberArray[second[z]] ;
    console.log("secondNumber:" + secondNumber) ;
    if((firstNumber * 1) * (secondNumber * 1) > max) {
    max = (firstNumber * 1) * (secondNumber * 1) ;
    }
    }
    }
    }
    }
    }
    second.length = 0 ;
    first.length = 1 ; // 漏了一句
    }
    first.length = 0 ;
    } alert("最大数是:" + firstNumber + "*" + secondNumber + "=" + max) ;
    </script>
      

  6.   


        <script type="text/javascript">
            window.onload = function () {
                var s = "";
                var a = 0;
                var b = 0;
                for (var i = 1; i < 10; i++) {
                    for (var j = 1; j < 10; j++) {
                        for (var m = 1; m < 10; m++) {
                            for (var n = 1; n < 10; n++) {
                                for (var z = 1; z < 10; z++) {
                                    if (i != j && i != m && i != n && i != z) {
                                        if (j != m && j != n && j != z) {
                                            if (m != n && m != z) {
                                                if (n != z) {
                                                    a = i * 100 + j * 10 + m;
                                                    b = n * 10 + z;
                                                    var c = a * b;
                                                    s +=  a + "," + b + "," + c + ",";
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                max(s);
            }
            function max(s) {
                var info = new Array()
                info = s.split(",");
                var info1 = new Array();
                var x = "";
                for (var i = 0; i < info.length; i++) {
                    if (info[i] == Math.max.apply(null, info)) {
                        alert(info[i] + "乘以" + info[i + 1] + "等于" + info[i + 2]);
                    }
                }
            }
        </script>这个就是慢点 但是能出来
      

  7.   


    <script type="text/javascript">
            window.onload = function () {
                var s = "";
                var a = 0;
                var b = 0;
                for (var i = 1; i < 10; i++) {
                    for (var j = 1; j < 10; j++) {
                        for (var m = 1; m < 10; m++) {
                            for (var n = 1; n < 10; n++) {
                                for (var z = 1; z < 10; z++) {
                                    if (i != j && i != m && i != n && i != z) {
                                        if (j != m && j != n && j != z) {
                                            if (m != n && m != z) {
                                                if (n != z) {
                                                    a = i * 100 + j * 10 + m;
                                                    b = n * 10 + z;
                                                    var c = a * b;
                                                    s +=  a + "," + b + "," + c + ",";
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                max(s);
            }
            function max(s) {
                var info = new Array()
                info = s.split(",");
                var info1 = new Array();
                var x = "";
                for (var i = 0; i < info.length; i++) {
                    if (info[i+1] == Math.max.apply(null, info)) {  //这改了一下
                        alert(info[i] + "乘以" + info[i + 1] + "等于" + info[i + 2]);
                    }
                }
            }
        </script>
      

  8.   


    <script type="text/javascript">
       var number_array=["9", "8", "7", "6", "5"];
       var index_a;
       var index_b;
       var index_i;
       
       var firstnumber = '';
       var secondnumber = '';
       var maxnumber = 0;
       var first_temp_number = '';
       var second_temp_number = '';
       
       for (index_a = 0; index_a < number_array.length; index_a++)  
       {
          for(index_b = index_a + 1; index_b < number_array.length; index_b++)
          {        
             first_temp_number = (number_array[index_a] + number_array[index_b]) * 1;
             for(index_i = 0; index_i < number_array.length; index_i++)
             {
                if(index_i != index_a && index_i != index_b)
                {
                   second_temp_number += number_array[index_i] * 1;
                }
             }
             if(first_temp_number * (second_temp_number * 1) > maxnumber)
             {
                maxnumber = first_temp_number * (second_temp_number * 1);
    firstnumber = first_temp_number;
                secondnumber = second_temp_number * 1;
             }
     first_temp_number = '';
     second_temp_number = '';
          }
       }
       alert("first_number: " + firstnumber);
       document.write("<p>first_number: " + firstnumber + "</p>");
       alert("second_number: " + secondnumber); 
       document.write("<p>second_number: " + secondnumber + "</p>");
       alert("the max number is: " + maxnumber);
       document.write("<p>the mux number is: " + maxnumber + "</p>");
    </script>
      

  9.   

    不用写这么复杂:<script>
        var v = 0,
            m = 0,
            n = 0;    for (var i = 987; i > 500; i--) {
            for (var j = 65 ; j > 50 ; j--) {
                if (t(i, j) && (i * j >v)) {
                    v = i * j;
                    m = i;
                    n = j;
                }
            }
        }    alert('i:' + m + '\nj:' + n + '\nv:' + v);
        function t(x, y) {
            var s = x + '' + y;
            for (var i = 0; i < s.length ; i++) {
                var char = s.substr(i, 1);
                if (s.indexOf(char) != s.lastIndexOf(char)) {
                    return false;
                }
            }
            return true;
        }
    </script>
      

  10.   

    错了,上面j要从99开始才对:<script>
        var v = 0,
            m = 0,
            n = 0;    for (var i = 987; i > 500; i--) {
            for (var j = 99 ; j > 50 ; j--) {
                if (t(i, j) && (i * j >v)) {
                    v = i * j;
                    m = i;
                    n = j;
                }
            }
        }    alert('i:' + m + '\nj:' + n + '\nv:' + v);
        function t(x, y) {
            var s = x + '' + y;
            for (var i = 0; i < s.length ; i++) {
                var char = s.substr(i, 1);
                if (s.indexOf(char) != s.lastIndexOf(char)) {
                    return false;
                }
            }
            return true;
        }
    </script>
      

  11.   

    那还不简单?限定一下就是了
    d = [2,1,3,4,5,6,7,8,9];
    d.sort(function(a,b){return b-a});
    a = b = 0;
    for(i=0,k=0; i<d.length-1; i+=2,k++) {
      if(k == 2) {
        if(a > b) a = a * 10 + d[i];
        else b = b * 10 + d[i];
        break; 
      }
      if((a * 10 + d[i]) * (b * 10 + d[i+1]) > (a * 10 + d[i+1]) * (b * 10 + d[i])) {
        a = a * 10 + d[i];
        b = b * 10 + d[i+1];
      }else {
        a = a * 10 + d[i+1];
        b = b * 10 + d[i];
      }
    }
         
    document.write('a=' + a + ' b=' + b);
    a=87 b=965