+ 3
How to do factorial for loop javascript
Hi I tried doing the question for a factorial for loop in JavaScript and I can't figure out what I'm doing wrong, I've looked round on google and I don't see why this doesn't work function main() { var number = parseInt(readLine(), 10) var factorial = 1; // Your code here for (;number>0; number--){ factorial *=} console.log(factorial) } It keeps saying one of the } is the problem and in honestly at a loss
9 ответов
+ 1
the problem is this line:
factorial *=}
replace it with
factorial *= number;
}
+ 1
Thank you, I tried that but now every answer is 0?
+ 1
are you sure that the condition in your for loop is
number > 0?
I mean, may be you have number >=0 or something else.
+ 1
Sorry, I have no clue what I did, but It worked thank you. Would you mind helping as well, when reading the code, I would imagine if number = 10, then why wouldn't the code do 9x8x7... Since the loop says to do -1 each time?
+ 1
Adamjhw that's exactly what your code does.
if number=10 then your code will calculate
10x9x8x...x1
it will start at 10 and end with 1 because 1-1=0 which will break the loop.
+ 1
I know, but why doesnt the first one make it start at 9 rather than 10?
+ 1
number is decreased only after the loop instructions have been executed.
so, on the first iteration, the loop will compare number to 0:
if number>0 then it will execute the loop body, here factorial *= number.
and then execute number-- and redo what is said above.
+ 1
function main() {
var number = parseInt(readLine(), 10)
var factorial = 1;
// Your code here
for (;number>0; number--){
factorial *= number}
console.log(factorial)
}
-----This might be a little easier to understand------------
function main() {
var i = parseInt(readLine(), 10)
var factorial = 1;
// Your code here
for (;i>0; i--){
factorial *= i}
console.log(factorial)
}
0
look at this
**
Statement 3 increases a value (i++) each time the code block in the loop has been executed.
**
from here
https://www.sololearn.com/learning/1140/