이진수출력 (재귀)
문제
자연수 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된다.
Author And Source
이 문제에 관하여(이진수출력 (재귀)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zmdals/이진수출력-재귀저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)