2022/04/20) 11. 팩토리얼 [재귀함수와 완전탐색(DFS:깊이우선탐색)]

굥굥이·2022년 4월 26일
0

1. 문제

<팩토리얼>
: 자연수 N을 입력하면 N!값을 구하세요. N! = n*(n-1)*(n-2)*.....*2*1 입니다.
만약 N=5라면 5!=5*4*3*2*1=120 입니다.

2. 해결 방법

  1. 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 리턴!
  2. 위와 같은 흐름으로 리턴받는다!!! 계속 내려가다가, D(1)부터 리턴 리턴 리턴!!!
    그러므로 DFS에 if 조건으로, n===1이면 1를 리턴하도록 해야한다!
    else 조건으로는, n*DFS(n-1)을 리턴!

3. 정답

<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>
profile
아자아자 파이띵굥!

0개의 댓글