코드카타 Day15
위의 글을 참고하면 재귀 함수에는 꼭 필요한 두가지가 있다.
1) 함수 안에 그 함수를 불러온다
2) 언제 멈출지에 대한 종료 조건을 정한다
const factorial = n => {
if (n === 1 || n === 0) {
return 1;
}
else {
return n * factorial(n-1);
}
}
삼항연산자 적용후
const factorial = n => {
return (n <= 1)
? 1
: n * factorial(n-1)
}
if문안에 n === 0 이 있는게 의문일 수 있는데,
팩토리얼을 '1에서부터 n까지의 정수를 모두 곱한것'이라고 정의하고 있지만,
팩토리얼에서는 0!도 포함하고 있다.
이는 사실 팩토리얼은 "경우의 수"를 구하기 위해 사용되는 식이라서 그렇다.
(4! = 24는 4명이 줄을 설 수 있는 경우의 수)
그렇기 때문에 0!은 비어있는 경우의 수 (empty or zero set), 즉 1가지가 되어 0! = 1로 정의하고 있다.
Author And Source
이 문제에 관하여(코드카타 Day15), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soojjung/코드카타-Day15저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)