2017-02-08 15 views
0

https://www.hackerrank.com/contests/projecteuler/challenges/euler001У меня возникли проблемы с этим упражнением на хакер ранга смотрите пожалуйста

Вот проблема, я запутался, что заявление ParseInt Readline , а также вар н утверждение в основном ..

когда я запускаю мой код, кажется, сосчитать до десяти два раза, вероятно, простой проблемы просто не видя его, и надеялся, что я мог бы получить это объясняется тем, что я могу продолжать работать над проблемами эйлера проекта

Благодаря

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); 
    }; 

} 
+1

Его заявление о проблеме для нас или __you__? – Satpal

+2

Обновите название своего вопроса, чтобы лучше описать конкретный вопрос, который у вас есть. – StriplingWarrior

+0

С двумя небольшими модификациями этот код пройдет тест. Когда вы пытаетесь учиться, я не буду говорить вам, что изменить, но сделаю два комментария, которые могут указать вам в правильном направлении. Во-первых, вам нужно занести в консоль * сумму * чисел, кратных 3 и 5. Также вас интересует только сумма чисел от 0 до текущего значения n, вам все равно, предыдущая строка – noggin182

ответ

1

Возможно, я не отвечаю точно, каков ваш вопрос.

ParseInt - это функция javascript. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

Функция ReadLine() определяется для вас, это даст вам «следующую строку», которая была захвачена из стандарта в. все (или большинство) проблем hackerrank предлагают вход для проблемы через стандартный -in и ожидать результата от стандартного. Поэтому для этой проблемы hackerrank создал этот шаблонный код для чтения этого ввода.

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

Там заполняет input_stdin_array массив, который используется на функции ReadLine().

А про

когда я запускаю мой код, кажется, сосчитать до десяти дважды

Проблема упоминает:

Первая строка содержит T, которая обозначает число тестов. За этим следует T строк, каждый из которых содержит целое число, N.

Итак, вы печатаете массив T раз (для тестового примера по умолчанию равно 2), поэтому, вероятно, вы увидите «до десяти» раз "

Я надеюсь, что это помогло, и, вероятно, вы могли бы начать с пары задач https://www.hackerrank.com/domains/tutorials/30-days-of-code, чтобы вы могли лучше понять, как работать над проблемами.

С уважением

0

Объявление массива после первого цикла цикла. Вы используете один и тот же массив для каждого тестового примера, хотя он все еще содержит числа из предыдущих тестовых примеров. То же самое для суммы.

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