백준/Java

[백준 자바] 10829번(이진수 변환) - 자연수를 2진수로 바꾸기

gamzaggang7 2024. 6. 19. 14:40
728x90

난이도 - 브론즈 2

문제

자연수 N이 주어진다. N을 이진수로 바꿔서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000)

출력

N을 이진수로 바꿔서 출력한다. 이진수는 0으로 시작하면 안 된다.

 


 

728x90

n이 0이 될 때까지 2로 나누고 그 나머지를 StringBuffer에 붙인다.

import java.io.*;

public class Main10829 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    long n = Long.parseLong(br.readLine());

    bw.write(toBinary(n));

    bw.flush();
    br.close();
    bw.close();
  }

  static String toBinary(long n) {
    StringBuffer result = new StringBuffer();

    do {
      result.append(n % 2);
      n /= 2;
    } while (n > 0);

    return result.reverse().toString();
  }
}

 

728x90