2016-01-27 2 views
0

все!JS: В то время как цикл, чтобы найти продукт последовательных целых чисел

Я новичок в программировании и пытаюсь написать цикл while, который вернет произведение всех чисел от 1 до n включительно. Я не могу заставить свой код работать правильно; он продолжает возвращать странные цифры.

Я думаю, что проблема связана с первой линией цикла while. Это похоже на то, что он не умножается, но я не знаю, почему.

Вот код, который я написал:

var n = 7; 
var multiplier = 1; 

while (multiplier <= n){ 
    multiplier = (multiplier * multiplier+1); 

    if (n < 6){ 
     multiplier+= 2; 
    } 
    else { 
     multiplier++; 
    }; 
}; 

console.log(multiplier); 

ответ

0

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

var n = 5; 
 
var multiplier = 1; 
 

 

 
var result = 1; 
 
while (multiplier <= n) { 
 
    result *= multiplier++; 
 

 
}; 
 

 
document.body.innerHTML = (result);


Если вы посмотрите на свой цикл ниже, то в конце 1-го итерационного множителя будет 3, конец второго цикла - 11, что выше 7, поэтому цикл существует.

var n = 7; 
 
var multiplier = 1; 
 

 

 
while (multiplier <= n) { 
 
    multiplier = (multiplier * multiplier + 1); 
 

 
    if (n < 6) { 
 
    multiplier += 2; 
 
    } else { 
 
    multiplier++; 
 
    }; 
 
    snippet.log('loop: ' + multiplier) 
 
}; 
 

 
snippet.log('result: ' + multiplier);
<!-- To show result in the dom instead of console, only to be used in the snippet not in production --> 
 
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

+0

Это имеет смысл. Спасибо огромное! Я очень ценю это. –

Смежные вопросы