팩토리얼(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
'JavaScript > JS 활용 & etc..' 카테고리의 다른 글
함수 선언문과 함수 표현식에서의 세미콜론(;) (0) | 2016.09.29 |
---|---|
자바스크립트 메서드 오버라이드와 오버로딩 (6) | 2016.09.29 |
재귀 함수(Recursive Function) (0) | 2016.09.29 |
정렬 알고리즘(선택정렬) - 오름차순,내림차순 (0) | 2016.09.29 |
배열의 합, 최대값,최소값 알고리즘 (0) | 2016.09.29 |