문제
자연수 N이 주어진다. N을 이진수로 바꿔서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000)
출력
N을 이진수로 바꿔서 출력한다. 이진수는 0으로 시작하면 안 된다.
import java.io.IOException;
import java.util.Scanner;
public class BOJ_10829 {
private static void printbinary(long n) {
if (n <= 1) {
System.out.print(n);
return;
}
printbinary(n / 2);
System.out.print(n % 2);
}
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
printbinary(n);
sc.close();
}
}
재귀 문제가 많이 부족한 것 같아 재귀 파트 문제를 풀고있다.
이진수의 변환은 손쉽게 구현할 수 있었던 것 같다.
하지만 출력부분이 우선되어야하는지 아니면 재귀함수 호출이 먼저인지 고민을 꽤 해봤던 것 같다.
한번에 딱 하고 이해가 되지는 않았다.
'Algorithms > BOJ' 카테고리의 다른 글
[Java] 2447. 별찍기 -10 (0) | 2021.02.09 |
---|---|
[Java] 1991. 트리순회 (0) | 2021.02.08 |
[Python, Java] 15649. N과 M(1) (0) | 2021.02.06 |
[Java] 16236. 아기 상어 (0) | 2021.02.03 |
[Python] 2004. 조합 0의 개수 (0) | 2021.02.02 |