2 jassibel jassibel 于 2016.09.22 14:01 提问

2.输入a ,b,c 三个个位数(0-9)之间,组成一个最大的三位数 用JavaScript来写

2.输入a ,b,c 三个个位数(0-9)之间,组成一个最大的三位数 用JavaScript来写,怎么写 谢谢 或者告诉我思路

7个回答

showbo
showbo   Ds   Rxr 2016.09.22 14:31

3个数字放入数组desc 排序,join下就是你要的

        var arr = [];
        while (arr.length != 3) {
            var v = prompt('输入数字!');
            if (/^\d$/.test(v)) arr.push(parseInt(v));
            else alert('请输入数字,长度为1!')
        }
        alert('输入数字为:' + arr.join(','))
        arr.sort(function (a, b) { return b - a })
        alert('组成的最大数字为:'+arr.join(''))
qgfjeahn
qgfjeahn 正则用的好666
大约一年之前 回复
jassibel
jassibel 谢谢
大约一年之前 回复
AutomaticScript
AutomaticScript   2016.09.22 15:42

是这样吗?

 [3, 1, 9].sort().reverse().join('')
jassibel
jassibel 谢谢
大约一年之前 回复
zy_281870667
zy_281870667   Ds   Rxr 2016.09.22 14:31

javascript的array对象,有sort方法。
你直接把输入的三个数字加入到array里,然后排序,
排序完毕,定义一个空串的变量和一个for循环,
for循环里,定义的空串变量每次都加上当前的array循环对象即可

jassibel
jassibel 谢谢
大约一年之前 回复
leewers
leewers   2016.09.22 14:33

//主要思路是将三个数字中比较大的数放在前面,比较小的数放在后面,这就使得组成的三位数最大。不过代码并没有考虑三个数字都是0的情况
function generateMaxNum(a, b, c){
var max = (a > b) ? a : b; //比较出a,b中较大值,赋给max
var mid = a + b - max; //较小值赋给mid和min
var min = mid;

if(c > max){//将c与a,b的较大值比较,如果c比a,b较大值还要大,则其成为最大值
    mid = max; //将a,b较大值赋给mid(中间值)
    max = c;
}
else{ //如果c比max小,则max维持不变
    if(mid > c) //c继续与a,b中较小值比较
        min = c; //如果c比a,b中较小值小,则c为最小值
    else
        mid = c; //否则c为中间值
}

return max * 100 + mid * 10 + min;

}

leewers
leewers 回复木子李家的小提提:是用的三目操作符,其实三目操作符是可以用if语句来替代的,只是个人觉得方便就用了。比如a = (a > 0) ? 0 : 1;可以用if(a > 0) a = 0; else a = 1;来代替,效果是一样的。 另外return的内容其实就是把max作为百位(乘100),mid作为十位(乘10),min作为个位(乘1)。其实其他答案直接把三个数放到数组里进行排序,再把它们拼接到字符串上的方法写起来会更方便一点。
大约一年之前 回复
jassibel
jassibel 请问这个用的是三目运算符不,我想问下return 那个为什么要这么写 我是新手 很多不懂的,请你不要嫌麻烦 谢谢
大约一年之前 回复
jassibel
jassibel 请问这个用的是三目运算符不,我想问下return 那个为什么要这么写 我是新手 很多不懂的,请你不要嫌麻烦 谢谢
大约一年之前 回复
qq_29594393
qq_29594393   Ds   Rxr 2016.09.22 14:37

直接输入三个数,放入数组 arr中 ,arr.sort()排序 一下 ,定义一个var str="" 循环 str+=arr.pop(),完了

jassibel
jassibel 谢谢
大约一年之前 回复
u013693144
u013693144   2016.09.22 15:01
  function getMaxNumber( a, b, c){
    var d=[a,b,c];
    d.sort();
    var max="";
      for(var i=0;i<d.length;i++){
        max=d[i]+max;
    }
    alert(max);
  }

jassibel
jassibel 谢谢
大约一年之前 回复
u013693144
u013693144   2016.09.22 18:17

一句话搞定,diao爆了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!