(자바/자바) 백준 #2089 – 바이너리

문제

– 이진수는 부호 없는 이진수로 표현됩니다. 이진수에서는 2^0, 2^1, 2^2, 2^3으로 표현되지만 -binary에서는 (-2)^0 = 1, (-2)^1 = -2, (-2)^2 = 4, (-2)^3 = -8을 나타냅니다. 1, 1, 110, 111, 100, 101, 11010, 11011, 11000, 11001 등으로 시작하는 십진수

10진수를 입력받아 2진수를 출력하는 프로그램을 작성하시오.

기입

첫 번째 줄은 10진수로 숫자 N을 제공합니다.

전)

-13

누르다

– 이진수를 출력합니다.

전)

110111



암호

import java.util.*;

public class Main {
    public static void main(String() args){
        Scanner scanner = new Scanner(System.in);

        int n= scanner.nextInt();

        String num="";

        if(n==0){
            System.out.println(0);
        }

        while(true){

            if(n==0){
                break;
            }else if(n%(-2)==-1){
                num=(n%(-2))+2+num;
                n=n/(-2)+1;
            }else{
                num=(n%(-2))+num;
                n=n/(-2);
            }
        }

        System.out.println(num);
    }
}