[Algorithm] 재귀함수 - factorial

유자탱자🍋·2021년 3월 19일
0

Algorithm

목록 보기
3/5

문제

해결

const factorial = n => {
  if(n<=1){
    return 1;
  }else{
    return n * factorial(n-1);
  }
}

TIL

재귀(Recursion) = Recursion is simply when a function calls itself.


the three key features of recursion

1) 종료 조건(Termination Condition)

  • if(something bad happened){ STOP };
  • 재귀의 안전장치로서 원하지 않는 값이 들어왔을 때 재귀가 계속해서 동작하는 것을 방지(긴급 브레이크라고 생각하자!)
  • // if(n<0) return;

2) 기반 조건(Base Case)

  • if(this happens) { Yay! We're done };
  • 재귀를 종료한다는 점에서는 종료 조건과 유사하지만, 기반 조건은 재귀 함수의 목적지다.
  • 만약 기반 조건이 없다면 재귀는 무한 로딩의 굴레로...😫
  • // if(n<=1) return 1;

3) 재귀(Recursion)

  • 재귀가 실질적으로 일어나는 부분. Our function calling itself.
  • // else{return n * factorial(n-1);}

삼항 연산자를 사용해 보다 간단하게 로직을 구현할 수도 있다.

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

[참고_jakeseo-javascript.js님 velog]
[참고_codeburst]

0개의 댓글