链接:https://ac.nowcoder.com/acm/contest/9004/C
语言:javascript;
AC代码如下:
function Maxsumforknumers( x , k ) {
const arr = x.split("");
arr.sort(function(a,b){
return b-a;
})
console.log(arr);
let n = arr.length;
let result = [];
let res = 0;
if(k===n){
for(let i=0;i<n;i++){
res += parseInt(arr[i]);
}
return res.toString();
}else{
const par1 = [];
for(let m=0;m<=n-k;m++){
par1.push(arr[m]);
}
let len1 = par1.length;
for(let j=n-1;j>n-k;j--){
res += parseInt(arr[j]);
}
const par2 = res.toString().split("");
let len2 = par2.length;
let len = len1>len2?len1:len2;
if(len1>len2){
for(let i=0;i<len1-len2;i++){
par2.unshift("0");
}
}else if(len1<len2){
for(let i=0;i<len2-len1;i++){
par1.unshift("0");
}
}
let tail = (parseInt(par1[len-1])+parseInt(par2[len-1]))%10;
let temp = [];
temp[len-1] = Math.floor((parseInt(par1[len- 1])+parseInt(par2[len-1]))/10);
result.unshift(tail);
for(let i=len-2;i>=0;i--){
temp[i] = Math.floor((parseInt(par1[i]) + parseInt(par2[i])+ temp[i+1])/10);
let a = (parseInt(par1[i])+parseInt(par2[i]) + temp[i+1])%10;
result.unshift(a);
}
if(temp[0] != 0){
result.unshift(temp[0].toString());
}
return result.join("");
}
}