一组正整数每个数字不能拆分,组成一个最大的数,不考虑超出整数范围。请用javascript写出算法

比如: 65,87,343,45,21,55 这组数字组成的最大数应该是 87 65 55 45 343 21

第1个回答  2013-10-31

javascript有原生的方法来实现

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//将数字放在数组里
var arr = ['65', '87', '343', '45', '21', '55'],
//将数组中的所有元素放入一个字符串
str = arr.join(''),//结果是6587343452155
//将刚才的字符串分割成字符串数组
newArr = str.split(''),//结果是["6", "5", "8", "7", "3", "4", "3", "4", "5", "2", "1", "5", "5"] 
//对字符串数组进行排序
  sortArr = newArr.sort(),//结果是["1", "2", "3", "3", "4", "4", "5", "5", "5", "5", "6", "7", "8"]
  //颠倒排序后的字符串数组元素的顺序
  maxSrotArr = sortArr.reverse();//结果是["8", "7", "6", "5", "5", "5", "5", "4", "4", "3", "3", "2", "1"] 
  //将数组中的所有元素放入一个字符串
alert(maxSrotArr.join(''));//结果是8765555443321
</script>
</body>
</html>

第2个回答  2013-10-31
var k=[65,87,343,45,21,55];
k.sort();
k.reverse();
k.join("");本回答被提问者采纳
第3个回答  2013-11-01
先把每个数字转成string按照字典顺序逆序排序,然后append起来。
楼上的算法都错的。自己写吧追问

他们没看清题目要求。请问什么是字典顺序?

追答

自己百度吧。我习惯给读者一点思考的空间。你以为为了点分我就会违背原则那就大错特错了。


Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答
大家正在搜