我想将数组中的“ K”个元素加在一起。但是,每次我运行程序时,它只会将数组中的每个值都拍到对方。
let N=prompt("write number of elements N");
let K=prompt("write number of elements K");
var arr= [];
for(let i=0; i<N ; i++){
arr[i]=prompt("write each number");
}
arr.sort();
arr.reverse();
//problematic code:
var sum= 0;
for (let i=0 ; i<K; i++){
sum+= arr[i];
}
console.log(sum);
-整个问题是使用用户输入中的K元素从具有N个元素的数组中找到最大的和。
我不能只将每个值都拍到最后就得出总和。
-预期输出为7 + 8 + 9 = 24。但是,只是将它们拍打在一起:7 + 8 + 9 = 789
答案 0 :(得分:1)
这是因为提示返回的是字符串而不是数字,只需将其转换为数字,然后再将其添加到数组中即可
let N=prompt("write number of elements N");
let K=prompt("write number of elements K");
var arr= [];
for(let i=0; i<N ; i++){
arr[i]=Number(prompt("write each number"));
}
arr.sort();
arr.reverse();
var sum= 0;
for (let i=0 ; i<K; i++){
sum+= arr[i];
}
console.log(sum);