자연수 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된다.