2015-06-12 1 views
0

Ниже приведено то, что у меня есть. И разместить запрос пользователя внутри функции или оставить его там, где он есть? То, что я «пытается» выполнить это добавитьКак я могу заставить оператор модуля добавлять нечетные числа между двумя номерами в JavaScript?

<!DOCTYPE HTML> 
<html lang="en-us"> 
    <head> 
    <meta charset="utf-8"> 
    <script type="text/javascript"> 
/* Input: user types in an integer 
* Processing: adds all odd numbers between input and 0 
* Output: the sum of the odd numbers 
*/ 
function addOdds() { 
    var n = parseInt(document.getElementById('number').value); 
     var sum = i=i+2; 
      for **(var i = -1; i < 6; i = i + 2)** { 
       if (n == 0) { 
        break; 
       } 
       sum += n; 
      } 
      window.alert(sum); 
     } 
     </script> 
    </head> 

    <body> 
    Please enter a number. <input type="text" id="number"> 
    <button type="button" onclick="addOdds()"> Get the sum </button> 
    <div id=""> </div> <!--is this part need? --> 
</body> 
</html> 
+1

Вы должны сделать вопрос завершения в должности, а не полагаться на название или предмет для деталей. Просто проверьте 'if (n% 2)', он будет оценивать до * true *, если * n * нечетно. – RobG

+0

'var isOdd = (n% 2 == 1);' – Jasen

+0

Вы не имеете в виду «нечетные числа», по-видимому; вы имеете в виду «цифры в нечетных положениях». –

ответ

0

В функции у вас есть:

function addOdds() { 
    var n = parseInt(document.getElementById('number').value); 
    var sum = i=i+2; 

я объявлен ниже, поэтому его значение является неопределенным . Добавление 2 возвращает NaN. Просто инициализируется сумма до 0:

var sum = 0; 

    for (var i = -1; i < 6; i = i + 2) { 

Я думаю, что нужно начинать с 0, хотя это даже так начинаются с 1. И вы хотите идти до значения, так:

for (var i=1; i<=n; i++) { 

Теперь просто добавьте я, если это даже не:

sum += i%2? i : 0; 
    } 

и вы сделали.

document.getElementById('sum').textContent = sum 
} 

Предполагая, что у вас также есть:

<div id="sum"></div> 

Но мне нравится ответ Ви You в. ;-)

+0

Кажется, он хочет не добавлять нечетные числа, а скорее добавлять числа в нечетные местоположения в массиве. –

+0

«LaurenB» - необычное имя для «он». ;-) Не уверен, что я знаю, чего хочет OP, по-видимому, не это. – RobG

0

Попробуйте этот код, это поможет вам ..

<!DOCTYPE HTML> 
<html lang="en-us"> 
    <head> 
    <meta charset="utf-8"> 
    <script type="text/javascript"> 
/* Input: user types in an integer 
* Processing: adds all odd numbers between input and 0 
* Output: the sum of the odd numbers 
*/ 
function addOdds() { 
    var n = parseInt(document.getElementById('number').value); 
     var sum = 0; 
      for (var i = 0; i < n; i++) { 
       if (i % 2 != 0) { 
        sum += i; 
       } 
       ; 
      } 
      window.alert(sum); 
     } 
     </script> 
    </head> 

    <body> 
    Please enter a number. <input type="text" id="number"> 
    <button type="button" onclick="addOdds()"> Get the sum </button> 
    <div id=""> </div> <!--is this part need? --> 
</body> 
</html> 
Смежные вопросы