- 스택의 가장 위에 있는 함수가 실행되는 함수다.
- D(0)이 실행되면 해당 함수는 x==0이므로 종료됨
- 그러고 맨위의 D(0)이 스택에서 빠짐
- 그다음 스택 최상위 순으로 D(1) - line9까지 하고 넘어왔기 때문에 나머지 line10 마저하고, 함수를 다했으면
스택에서 빠진다.
- 재귀는 스택이 비는 순간 main 함수로 옴!!!
// 57번 - 재귀함수 이진수 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
using namespace std;
void recur(int x) {
if (x == 0) return;
else {
recur(x/2);
printf("%d", x%2);
}
}
int main() {
int n;
scanf("%d", &n);
recur(n);
return 0;
}
'[알고리즘] 문제풀이 연습' 카테고리의 다른 글
[알골90제] 59번 - 부분집합 MS인터뷰 : DFS 깊이우선탐색 (0) | 2019.08.01 |
---|---|
[알골90제] 58번 - 이진트리 깊이우선탐색(DFS) (0) | 2019.08.01 |
[알골90제] 56번 - 재귀함수 분석 : STACK 이용 (0) | 2019.07.31 |
[알골90제] 55번 - 기차운행 : STACK 응용 (0) | 2019.07.31 |
[알골90제] 54번 - 올바른 괄호 : STACK 이용 (0) | 2019.07.30 |