본문으로 바로가기

팩토리얼 함수

category JavaScript/JS 활용 & etc.. 2016. 9. 29. 12:59


팩토리얼(factorial) 함수



1. 명령형 프로그래밍 방식의 팩토리얼


function factorial_step1(num) {
var val = 1,
i = 2;

for(; i <= num; i++) {
val = val * i;
}
return val;
}

console.log(factorial_step1(4))




2. 재귀호출을 이용한 팩토리얼


function factorial_step2(num) {
if(num == 0) return 1;
else return num * factorial_step2(num -1);
}
console.log(factorial_step2(5));




3. 성능향상을 고려한 팩토리얼(캐시를 이용)


var factorial = function() {
var cache = {'0' : 1};
var func = function(n) {
var result = 0;

if(typeof(cache[n]) === 'number') {
result = cache[n];
} else {
result = cache[n] = n * func(n-1);
}
return result;
}
return func;
}();

console.log(factorial(5));
console.log(factorial(4));



Jaehee's WebClub