문제
문제해결
- 2진수를 구하는 것과 똑같이 구하되 나머지 연산은 -2로 하고 나누기 연산은 ceil을 통해 올림 연산을 한다
import java.util.Scanner;
// -2진수
public class B2089 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
StringBuilder sb = new StringBuilder();
if (n==0)
System.out.println(0);
else {
while (n!=1){
//기존 2진수 구하는 방법
// sb.append(n%2);
// n /= 2;
//-2진수 구하는 방법
sb.append(Math.abs(n%-2));
n = (int)Math.ceil((double)n/(-2));
}
sb.append(n);
}
System.out.println(sb.reverse());
}
}
'[알고리즘] > 백준' 카테고리의 다른 글
백준 11005 자바 - 진법 변환2 (0) | 2021.07.07 |
---|---|
백준 17103 자바 - 골드바흐 파티션 (0) | 2021.07.06 |
백준 1212 자바 - 8진수 2진수 (0) | 2021.07.04 |
백준 1373 자바 - 2진수 8진수 (0) | 2021.07.04 |
백준 17087 자바 - 숨바꼭질6 (0) | 2021.07.03 |