JavaScript/JS 활용 & etc..
팩토리얼 함수
jaiyah
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