10진수 N이 입력되면 2진수로 변환하여 출력하는 프로그램을 작성하세요.
단 재귀함수를 이용 해서 출력해야 합니다.
▣ 입력설명
첫 번째 줄에 10진수 N(1<=N<=1,000)이 주어집니다.
▣ 출력설명
첫 번째 줄에 이진수를 출력하세요.
▣ 입력예제 1
11
▣ 출력예제 1
1011
public static void main(String[] args) {
int N = 11; // 10진수
String s = solutionByIterator(N);
System.out.println("solutionByIterator : " + s);
String result = "";
result = solutionByDFS(N, result);
System.out.println("solutionByDFS : " + result);
}
private static String solutionByIterator(int n) {
StringBuilder sb = new StringBuilder();
boolean isEnd = false;
int temp = n;
while(!isEnd){
sb.insert(0, temp % 2); // 2진수로 변환, 맨 앞에 값을 입력하여 기존 값을 한칸씩 뒤로 미룬다.
temp = temp / 2; // 다음 계산에선 몫을 사용한다.
if(temp == 0){
isEnd = true;
}
}
return sb.toString();
}
private static String solutionByDFS(int n, String result){
if(n == 0){
return result;
}
return solutionByDFS(n/2, String.valueOf(n % 2) + result);
}
'JAVA > 알고리즘' 카테고리의 다른 글
피보나치 수열 (반복문, DFS) (0) | 2021.06.09 |
---|---|
팩토리얼 (반복문, DFS) (0) | 2021.06.09 |
자연수 출력 (반복문, 재귀함수) (0) | 2021.06.09 |
이진탐색 (0) | 2021.06.08 |
좌표정렬 (0) | 2021.06.08 |