재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요. 팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한것을 말합니다.
1! = 1
2! = 1 x 2
5! = 1 x 2 x 3 x 4 x 5
const factorial = n => { if (n === 0) return 1; if (n === 1) { return 1 } else { return n * factorial(n - 1) } }
재귀함수, 즉 자신을 함수로 정의할 때 자기 자신을 호출하는 방법을 뜻한다.
주어진 조건을 만족할 때까지 함수가 지속적으로 실행된다.
0일때 리턴 값이 1인 이유는, 0!
이 1이기 때문이다. (이는 수학적인 개념이라 검색을 통해 새로 알게 됐다... 0!
은 당연히 0
일줄 알았지만 다음과 같은 이유로 인해 1을 갖게 된다고 한다.)