그냥 2진법으로 바꾸는 문제가 아닌
-2진법으로 바꾸는 문제이다.
-2진법 문제는 그냥 2진법으로 바꿀 때 처럼 똑같이 풀면 된다.
다른점이 있다면 나머지 연산과 나누기 연산을 할때 -2를 해줘야 한다는 점과
나머지 연산을 할때 몫을 버림이 아닌 올림을 해줘야 한다는 점이다.
예를 들어
7/3 = 2 지만
7/-3 = 3이 라는 말이다.
왜 그런지 열심히 검색해봤지만 뚜렷한 이유를 알 수 없었다.
그냥 그렇다고 암기해야 겠다.
암튼 이렇게 해서 나머지를 구한 다음에 2진법을 구할 때 처럼
역순으로 출력해주면 된다.
Math.ceil()메소드를 통해 올림을 처리하였다.
n이 0일땐 따로 처리를 해줘야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
List<Integer> list = new ArrayList<>();
if(n==0) //n이 0 일때
System.out.println(n);
while(n!=0) {
}
}
|
'Algorithm' 카테고리의 다른 글
백준 1929 소수 구하기 Java (0) | 2019.04.17 |
---|---|
백준 1978 소수 찾기 Java (0) | 2019.04.16 |
백준 1373 2진수 8진수 & 백준 1212 8진수 2진수 Java (0) | 2019.04.15 |
백준 2745 진법 변환 Java (0) | 2019.04.15 |
백준 11005 진법 변환 2 Java (0) | 2019.04.15 |