<알고리즘?알고싶음!>-5

이지선·2021년 8월 7일
1

알고리즘

목록 보기
5/10
post-thumbnail

🤓문제

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

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

재귀 호출이란?

재귀 호출(recursive call)이란 함수 내부에서 함수가 자기 자신을 또다시 호출하는 행위를 의미합니다. 이러한 재귀 호출은 자기가 자신을 계속해서 호출하므로, 끝없이 반복되게 됩니다. 따라서 함수 내에 재귀 호출을 중단하도록 조건이 변경될 명령문을 반드시 포함해야 합니다.

👉풀이방법

let n= 5;

const factorial = n => {
  
  return n===0 ? 1 : n*factorial(n-1)
  
}//120출력

factorial(5) => 5*factorial(4)
5를 저장하고 factorial(4)실행 n값으로 4전달
factorial(4) => 4*factorial(3)
4를 저장하고 factorial(3)실행 n값으로 3전달
factorial(3) => 3*factorial(2)
3을 저장하고 factorial(2)실행 n값으로 2전달
factorial(2) => 2*factorial(1)
2를 저장하고 factorial(1)실행 n값으로 1전달
factorial(1) => 1*factorial(0)
1을 저장하고 factorial(0)실행 n값으로 0전달

n=0일 때 1을 return하고 종료!(0! 값은 1이다)

그 결과 1x2x3x4x5 = 120이 된다!

처음 배우는 재귀함수! 나중에 더 자세히 공부해 보겠다!🔥

profile
👩🏻‍💻

2개의 댓글

comment-user-thumbnail
2021년 8월 8일

그럽시다!

1개의 답글