문제
자연수 N이 입력되면 N!를 구하는 프로그램을 작성하세요.
예를 들어 5! = 5*4*3*2*1=120입니다.
입력설명
첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.
출력설명
첫 번째 줄에 N 팩토리얼 값을 출력합니다.
입력예제 1
5
출력예제 1
120
if(n==1) 이면 1 리턴하고
그게 아니면 n*DFS(n-1) 라는 재귀함수를 리턴한다
DFS(5)는 5*DFS(4)를 리턴받음
DFS(4)는 4*DFS(3)를 리턴받음
DFS(3)는 3*DFS(2)를 리턴받음
DFS(2)는 2*DFS(1)를 리턴받음
DFS(1)은 1을 리턴받음
그러면 스택이니까 DFS(1)이 먼저 POP되고 그 다음은 맨 상단에 있는 DFS(2) -> DFS(3) -> DFS(4) -> DFS(5)
이렇게 차례대로 리턴 받는다
그래서 최종적으로 120이 나온다
'알고리즘' 카테고리의 다른 글
[DFS,BFS 기초] 이진트리순회(DFS: Depth-First Search) (3) | 2025.01.18 |
---|---|
[DFS,BFS 기초] 피보나치 재귀(메모이제이션) (0) | 2025.01.18 |
[DFS,BFS 기초] 재귀함수를 이용한 이진수 출력 (0) | 2025.01.18 |
[DFS,BFS 기초] 재귀함수 (0) | 2025.01.18 |