알고리즘
[DFS,BFS 기초] 팩토리얼
kimkim615
2025. 1. 18. 17:34
문제
자연수 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이 나온다