console.log("Factorial");
const arr = [1, 2, 3, 4, 5];
// Using reduce method without function
const factorial = arr.reduce((acc, x) => acc * x, 1);
// console.log(factorial);
// OR
// Using reduce method with function call
function getFacto(acc, x) {
return acc * x;
}
const factorial1 = arr.reduce(getFacto);
// console.log(factorial1);
// OR
// Using for loop
let factorial2 = 1;
const n = 5;
for (let i = 1; i <= n; i++) {
factorial2 *= i;
}
// console.log(factorial2);
// -------------------------
// Time to Advanced
// Using reduce method
function getFacto2(num) {
if (baseFactocondition(num)) {
let initializeArr = Array.from(Array(num + 1).keys());
let arr1 = initializeArr.slice(1).reduce((a, b) => a * b);
return arr1;
}
else {
return 1;
}
}
// check if number is = to 0 or 1
function baseFactocondition(num) {
if (num == 0 || num == 1) {
return false;
}
}
console.log(getFacto2(0));
// Using for loop
let factorial3 = 1;
function factoUsingForLoop(num) {
if (baseFactocondition(num)) {
for (let i = 1; i <= num; i++) {
factorial3 *= i;
}
}
else {
return 1;
}
return factorial3;
}
console.log(factoUsingForLoop(1));
Chat GPT:
console.log("Factorial Calculation");
// Factorial using reduce method
const arr = [1, 2, 3, 4, 5];
const factorialUsingReduce = arr.reduce((acc, x) => acc * x, 1);
console.log(factorialUsingReduce); // Output: 120
// Factorial using a separate function with reduce
function calculateFactorial(arr) {
return arr.reduce((acc, x) => acc * x, 1);
}
console.log(calculateFactorial([1, 2, 3, 4, 5])); // Output: 120
// Factorial using for loop
function factorialUsingForLoop(n) {
let factorial = 1;
for (let i = 1; i <= n; i++) {
factorial *= i;
}
return factorial;
}
console.log(factorialUsingForLoop(5)); // Output: 120
// Advanced: Factorial using reduce and dynamic array generation
function factorial(num) {
if (num <= 1) return 1; // Handles base cases for 0 and 1
return Array.from({ length: num }, (_, i) => i + 1).reduce((acc, x) => acc * x, 1);
}
console.log(factorial(5)); // Output: 120
console.log(factorial(0)); // Output: 1
// Advanced: Factorial using for loop with base condition
function factorialWithBaseCheck(num) {
if (num <= 1) return 1; // Base case for 0 and 1
let result = 1;
for (let i = 2; i <= num; i++) {
result *= i;
}
return result;
}
console.log(factorialWithBaseCheck(5)); // Output: 120
console.log(factorialWithBaseCheck(1)); // Output: 1
0 Comments