recursion and cycle
by Evgeniy Kvasyuk
JavaScript
const factorial = (x) => {
let result = 1;
for (let i = 1; i<=x; i++){
result *= i;
}
return result;
}
const recursive_factorial = (x) => {
if (x === 0){
return x;
}
return 1 * factorial(x - 1);
}
const tail_recursive_factorial = ( step, res = 1 ) => {
if ( step < 2 ) {
return res;
}
else{
return tail_recursive_factorial( step - 1, res * step );
}
}
const recursive_pow = (x, y) =>{
if (y === 0){
return 1;
}
return x * recursive_pow(x, y-1);
}
const pow = (x, y) => {
let result = 1;
for (let i = 1; i <= y; i++){
result *= x;
}
return result;
}
console.time('recursive_factorial')
console.log(recursive_factorial(0));
console.timeEnd('recursive_factorial')
//console.time('factorial')
//console.log(factorial(10));
//console.timeEnd('factorial')
//console.time('tail_recursive_factorial')
//console.log(tail_recursive_factorial(10, 1));
//console.timeEnd('tail_recursive_factorial')