x가 0일때 함수를 종료하고
x를 2로 나눈 나머지를 재귀함수를 나올때 출력한다
예를들어 11을 넣었으면
STEP1
DFS(11)
11//2 = 5
ㅡㅡㅡㅡ
STEP2
DFS(5)
5//2 = 2
ㅡㅡㅡㅡ
STEP3
DFS(2)
2//2 = 1
ㅡㅡㅡㅡ
STEP4
DFS(1)
1//2 = 0
ㅡㅡㅡㅡ
STEP5
return
재귀함수의 마지막이 종료되었으므로
함수가 종료되면서 사라지고
스택에서도 스택프레임이 소멸된다
그리고
스택의 그다음 반환주소의 함수가 실행되는데
이것을 백트래킹이라고 부른다
백트래킹
DFS(1)의 프린트문 1%2 = 1
DFS(2)의 프린트문 2%2 = 0
DFS(5)의 프린트문 5%2 = 1
DFS(11)의 프린트문 11%2 = 1
순서로 1011이 출력된다
이름이 왜 DFS임?
재귀함수는 알고리즘에서 스택을 이용한 깊이우선탐색라서 그래
해당 댓글은 삭제되었습니다.