이진수출력 (재귀)

Seungmin Lim·2022년 2월 18일
0

코딩문제연습

목록 보기
60/63

문제

자연수 N의 이진수를 재귀 함수를 사용해 출력하기.

나의풀이

import java.util.*;
class Main2 {
	public void DFS(int n) {
		if(n==0) return;
		else {
			DFS(n/2);
			System.out.print(n%2);
		}
	}
	
	public static void main(String[] args) {
		Main2 T = new Main2();
		T.DFS(11);
	}

}

풀이방법

자연수 N의 이진수는 N을 2로 나눠서 몫이 0이 되기까지의 나머지를 거꾸로 출력한 값이다.
ex)
11 나누기 2의 몫 = 5, 나머지 = 1
5 나누기 2의 몫 = 2, 나머지 = 1
2 나누기 2의 몫 = 1, 나머지 = 0
1 나누기 2의 몫 = 0, 나머지 = 1.
11을 이진수로 나타내면 1011.

재귀함수는 stack frame이라는것을 이용해,

DFS(11)~DFS(0)까지 순서대로 쌓인다.
DFS(0)~DFS(11)까지 순서대로 pop된다.

0개의 댓글