[알고리즘] 문제풀이 연습

[알골90제] 57번 - 재귀함수(STACK) - 2진수 출력

ddgoori 2019. 7. 31. 14:51

- 스택의 가장 위에 있는 함수가 실행되는 함수다.

- 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;
}