我试图解决在线编码环境中的简单热身问题。
问题是找到将通过stdin输入的数组的累积和。这是提供的代码。
process.stdin.resume();
process.stdin.setEncoding('ascii');
var input_stdin = "";
var input_stdin_array = "";
var input_currentline = 0;
process.stdin.on('data', function (data) {
input_stdin += data;
});
process.stdin.on('end', function () {
input_stdin_array = input_stdin.split("\n");
main();
});
function readLine() {
return input_stdin_array[input_currentline++];
}
/////////////// ignore above this line ////////////////////
function main() {
var n = parseInt(readLine());
arr = readLine().split(' ');
arr = arr.map(Number);
}
这是我添加的代码。
var count = 0;
for(i= 0; i<n; i++){
arr[i]+= count;
}
return count;
它没有在标准输出上提供任何输出。
我的问题是双管齐下的。
一,我在这里做错了什么?
二,有人可以帮我理解所提供的代码。
特别是这行代码没有意义,`arr = arr.map(数目);
`
答案 0 :(得分:1)
我在这里看到你做错了什么。
arr[i]+= count;
这样,您就可以将count
添加到arr[i]
。
你想要做什么,似乎是计算数组的总和,看起来像这样:
count += arr[i];
它将arr[i]
添加到count
。
如果我回答错了,我道歉。
答案 1 :(得分:0)
我猜这是Hackerrank的挑战?我认为错误的是你增加了数组元素/项的值而不是计数。 你学习编码很棒,我会说要继续编码
var count = 0;
var n = arr.length
for(i= 0; i<n; i++){
count += arr[i];
}
return count;
您还应该查看reduce操作,以获得更清晰的代码。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
答案 2 :(得分:0)
要传递HR的标准要求,您需要
console.log(count);
或
process.stdout.write(count);