<팩토리얼>
: 자연수 N을 입력하면 N!값을 구하세요. N! = n*(n-1)*(n-2)*.....*2*1 입니다.
만약 N=5라면 5!=5*4*3*2*1=120 입니다.
- D(n)은 n*D(n-1)를 리턴받는다. 외우자.
그러면 D(5) -> 5*D(4) / D(4) -> 4*D(3) / D(3) -> 3*D(2) / D(2) -> 2*D(1) / D(1) -> 1,
정리하면 D(1) -> 1 리턴 / D(2) -> 2*1 리턴 / D(3) -> 3*2*1 리턴 / ... / D(5)는 5*4*3*2*1 리턴!- 위와 같은 흐름으로 리턴받는다!!! 계속 내려가다가, D(1)부터 리턴 리턴 리턴!!!
그러므로 DFS에 if 조건으로, n===1이면 1를 리턴하도록 해야한다!
else 조건으로는, n*DFS(n-1)을 리턴!
<html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(n){ let answer; function DFS(n){ if(n===1) return 1; else return n*DFS(n-1); } answer=DFS(n); return answer; } console.log(solution(5)); </script> </body> </html>