본문 바로가기

재귀함수로 팩토리얼 구하기

D-caffein 2023. 3. 23.
반응형

팩토리얼이란 1부터 양의 정수 n까지의 정수를 모두 곱한 것을 말합니다.

팩토리얼의 표기법은 n! 입니다.

 

const factorial = (num) => {
  let total = 1;
  for(let i = num; i > 1; i--) {
    total *= i
  }
  return total
}

console.log(factorial(4)) // 24

위의 코드는 반복문으로 팩토리얼을 구하는 함수 입니다. 

정수 num을 입력받아 반복문으로 num 부터 1보다 클때까지 -1을 하면서 모든 숫자를 곱하여 줍니다.

반복문을 쓰지 않고 재귀함수로 팩토리얼을 구할수 있습니다. 

재귀함수를 만들때는 2가지 조건을 만족해야 합니다.

  1. 종료 조건
  2. 다른 입력값(매번 다른 다른 데이터)
const factorial = (num) => {
  if(num === 1) return 1
  return num * factorial(num-1) 
}

console.log(factorial(4)) // 24

위의 코드는 num이 1이 될때까지 num * num-1을 하는데 이때 factorial(num-1)을 호출 함으로써 자기자신을 계속해서 호출하게 됩니다. 그리고 num이 1이 되었을때 종료가 되게 됩니다.

재귀 함수는 반복문보다 느리고 스택 오버플로우와 같은 문제가 발생할 수 있습니다. 따라서 재귀 함수를 사용하기 전에 문제를 분석하고 적절한 해결책을 선택해야 합니다.

 

 

반응형

'Programming' 카테고리의 다른 글

피보나치 수열  (0) 2023.03.25
concat - 자바스크립트  (0) 2023.03.24
reduce - 자바스크립트  (0) 2023.03.22
map - 자바스크립트  (0) 2023.03.21
filter - 자바스크립트  (0) 2023.03.20

댓글