我在黑客级别的练习上遇到麻烦请看

时间:2017-02-08 17:04:12

标签: javascript parsing installation int

https://www.hackerrank.com/contests/projecteuler/challenges/euler001

这是我困惑parseInt readline语句的问题 以及var n语句主要是..

当我运行我的代码时,似乎最多计算十次两次可能是一个简单的问题,只是没有看到它,并希望我能解释所以我可以继续处理项目的euler问题

谢谢

    function main() {
     var t = parseInt(readLine());
     var sum = 0; 
     var arr = []; 

    for(var a0 = 0; a0 < t; a0++){
        var n = parseInt(readLine());
        for (var i = 0; i < n; i++)
            if (i % 3 === 0 || i % 5 === 0){
                arr.push(i);
                sum += i; 
            };
        console.log(arr);
    };

}

2 个答案:

答案 0 :(得分:1)

也许我没有完全遵循你的问题。

parseInt是一个javascript函数。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

readLine()函数是为你定义的,它会给你&#34;下一行&#34;这是从标准中捕获的。 所有(或大多数)黑客问题通过标准输入提供问题的输入,并期望标准输出的结果。所以对于这个问题,hackerrank已经创建了这个用于读取该输入的样板代码。

   process.stdin.on('end', function () {
      input_stdin_array = input_stdin.split("\n");
      main();    
   });

填充了readLine()函数中使用的input_stdin_array数组。

关于

  

当我运行我的代码时,它似乎最多可以计算两次

问题提到:

  

第一行包含表示测试用例数的T.接下来是T行,每行包含一个整数N。

所以你要打印T次数(默认测试用例是2),这就是为什么你可能会看到&#34;最多10次&#34;

我希望这有所帮助,可能你可以从https://www.hackerrank.com/domains/tutorials/30-days-of-code挑战开始,这样你就可以更好地掌握如何解决这些问题。

问候

答案 1 :(得分:0)

在第一个for循环之后声明数组。您为每个测试用例使用相同的数组,即使它仍包含先前测试用例中的数字。总和相同。

for(var a0 = 0; a0 < t; a0++) {
  var arr = [];
  var sum = 0;