[Coding Test] Recursion (재귀)

Hansol Jeong·2022년 3월 25일
0

Coding Test

목록 보기
1/1

문제

재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요. 팩토리얼이란 n에서부터 1까지의 정수를 모두 곱한것을 말합니다.

0! = 1
1! = 1
2! = 1 * 2
5! = 1 * 2 * 3 * 4 * 5

풀이

const factorial = n => {
  return (n === 0) ? 1 : n * factorial(n-1);
}

오답

let result = 1;

const factorial = n => {
  // console.log("n : ", n)
  if (n === 0) return result;
  result = result * n;
  // console.log("result : ", result);
  factorial(n-1);
}
  • result 를 console 로 찍으면 결과가 잘 나오지만, 결과가 undefined 가 나왔다.
  • python 으로 재귀함수를 구현하던 때와 같이 factorial(n-1) 을 타고 들어가서 return 값이 나오면 된다고 생각했지만, js 에서는 안된다.
  • 재귀로 들어가기 전에 코드 자체에서 return 값이 없기 때문에 undefined 가 나오므로 유의해야한다.
profile
기록해둡시다

0개의 댓글