JAVA/알고리즘
2진수 변환 (반복문, 재귀함수)
lovineff
2021. 6. 9. 10:28
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);
}