팩토리얼을 구하는 다른 방법
시스템 2023. 10. 5. 02:19function factorial(n) {
return fact_iter(1, 1, n);
}
function fact_iter(product, counter, max_count) {
return counter > max_count ? product : fact_iter(counter * product, counter + 1, max_count)
}
Array(10).fill(0).forEach((_, index) => {
const i_fact_result = factorial(index)
console.log(index, i_fact_result)
})
해당 함수는 선형 반복적 과정(linear iterative process)을 통해 팩토리얼 값을 구하고 있다.
각각의 fact_iter함수는 각 단계에서 주어지는 product, counter, max_counter의 값만 기억하고 있으면된다. 따라서 fact_iter함수가 재귀적으로 호출됨에 따라 전재되거나 축약되지 않는다. 이러한 과정은 반복적과정(iterative process)라고 하며, 과정의 상태를 고정된 개수의 상태 벼수들과 과정이 한 상태에서 다른 상태로 이동할 때 상태 변수들을 갱신하는 고정된 규칙, 과정을 종료해햐 하는 조건을 명시하는 종료 판정 규칙으로 구성되어 있다.
팩토리얼 값을 구하는 과정은 n에 선형적으로 증가한다.
웹 이란? (0) | 2023.11.11 |
---|---|
재귀함수 치환 모형 (1) | 2023.10.05 |
시스템을 대하는 핵심 원리에 대한 생각 (1) | 2023.08.30 |
아토믹 디자인 패턴의 재사용성을 위한 고려 사항 (1) | 2023.08.28 |
개발 문제 해결 (0) | 2023.08.26 |