JavaScript Algorithms - 8 - Factorial of a Number

preview_player
Показать описание

📱 Follow Codevolution

Factorial of a Number
JavaScript Algorithms
Algorithms in JavaScript
Рекомендации по теме
Комментарии
Автор

function factorial(n) {
let output = 1;
for (let i = n; i >= 1; i--) {
output *= i;
}
return output;
}

console.log(factorial(0)); //1
console.log(factorial(1)); //1
console.log(factorial(4)); //24
console.log(factorial(6)); //720

khairiyusoff
Автор

I really like recursive approach for this: const factorial = (n) => { return n <= 1 ? 1 : n * factorial(n-1)}

paulbird
Автор

function fib(n){
let num = 1
for(let i =0; i<n;i++){
num *= (n -i )

}
return num
}
console.log(fib(0))
console.log(fib(1))
console.log(fib(4))
console.log(fib(5))

mohamedothman
Автор

Here is another solution

const factorial = (n) => {
let factorial = 1
for (let i = n; i > 1; i--) {
factorial *= i
}
return factorial
}

miladcodes
Автор

Using recursion makes more sense to me

function factorial(nnum){
//base case
if(num == 0 || num == 1){
return 1;
//recursive case
}else{
return num * factorial(num - 1);
}
}
/

console.log(factorial(5)) //120
console.log(factorial(4)) //24
console.log(factorial(6)) //720

akaris
Автор

I also wanted to write a for loop despite the comments here, I enjoyed this exercise and the explanation a lot

DutchmanRadio
Автор

This is my solution:
function factorial(n) {
let result = 1
for (let i=0; i<n; i++) {
result *= n - i
}
return result
}

norineoo
Автор

Thanks, I've got a simple solution with for loop:
function factorial(n){
let result = 1;
for(let i = n; i > 1; i--){

if(n === 0){
return result;
} else {
result *= i
}

}
return result
}
let result = factorial(0);
let resultTwo = factorial(4);
let resultThree = factorial(5);
console.log(result, resultTwo, resultThree);

DantesSagan
Автор

// using loop
function factorial(n) {
let fac = 1;

for(let i=2; i < n; i++) {
fac *= i;
}

return fac;
}

// using recursive
function factorial(n) {
if (n === 0) return 1;
return n * factorial(--n);
}

console.log('0: ', factorial(0));
console.log('1: ', factorial(1));
console.log('2: ', factorial(2));
console.log('3: ', factorial(3));
console.log('4: ', factorial(4));
console.log('5: ', factorial(5));

srudsalam
Автор

function factorial(n) {
if (n === 0 || n === 1) {
return 1;
}

let result = 1; // Initialize result to 1
for (let i = 2; i <= n; i++) {
result = result * i; // Update result by multiplying it with i
}
return result;
}

podcasttakes
Автор

function factorial(n) {
var y = [];
var x = 1;
for (var i = 1; i <= n; i++) {
y.push(i);
}
for (var j = 0; j < y.length; j++) {
x*= y[j];
}
return x;
}
console.log(factorial(4));

natasdabsi
Автор

function factorial(num) {
let factor = 1;
for (let i = num; i > 1; i--) {
factor = factor * i;
}
return factor;
}

bayasahamed
Автор

I gone through this way...
function factorial(n) {
let result = n;
if (!result) return 1;
for (let i = n; i > 1; i--) {
result *= (i - 1);
}
return result;
}

AdarshSingh-mmlh
Автор

amazing keep uploading, one question are you going to use recusion again after completion of this math algos?

jmeahra
Автор

I have zero experience with data structures/algorithms after the past 9 months of self-studying programming and cloud computing. Just started learning these and I am not good at them! Managed to get an almost-correct answer for this and fibonnaci on my own, but both were not quite correct. I'm going to do 1-2 of these at minimum every day until I get much better.

armoredchimp
Автор

function fact(n) {
let result = 1;
while (n >= 1) {
res *= n;
n - -
}
return result
}

sadhruva
Автор

solve it when contraints are n <=100 and return the ans as ans%(10^9+7)

rohitrout
Автор

// solve the problem of factorial :
function factorial(n) {
if (n == 0 || n == 0) return 1;
let fact = 1;

for (let i = 2; i <= n; i++) {
fact *= i;
}
return fact;
}
function factorialRecursion(n) {
// base case :
if (n == 1 || n == 0) return 1;

// recursion case :
return n * factorialRecursion(n - 1);
}

console.log(factorial(5));

Ayoubmajid-uuyv
Автор

In your case i think if you pass 0 or 1 then code won't goes into the loop. It directly goes to the return statement;
So Big O notation for the same will be O(1)

dsuppal
Автор

function factorial(n: number) {
let result = 1;
while (n > 0) {
result = result * n;
n--;
}
return result;
}

simdanofficial