자바 백준 2089번
실버 2
https://www.acmicpc.net/problem/2089
2089번: -2진수
-2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110
www.acmicpc.net
문제 보기

분류: 수학, 정수론
코드 보기
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 주어진 10진수를 -2진수로 변환하여 결과를 출력 String result = decimalToNegativeBinary(n); System.out.println(result); } // 주어진 10진수를 -2진수로 변환하는 함수 private static String decimalToNegativeBinary(int n) { // 10진수가 0이면 -2진수로 0을 반환 if (n == 0) { return "0"; } // 결과를 저장할 StringBuilder 객체 생성 StringBuilder result = new StringBuilder(); // 10진수를 -2진수로 변환하는 과정 while (n != 0) { // 현재의 나머지 계산 int remainder = n % -2; // 몫 계산 n /= -2; // 음수의 경우 나머지가 음수이면 2를 더해주고 몫에 1을 더해주는 보정 if (remainder < 0) { remainder += 2; n += 1; } // 나머지를 결과 문자열의 맨 앞에 추가하여 역순으로 저장 result.insert(0, remainder); } // 최종 결과를 문자열로 반환 return result.toString(); } }
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 4948 - 베르트랑 공준 (0) | 2024.02.06 |
---|---|
[Java] 백준 풀기 14241 - 슬라임 합치기 (0) | 2024.02.04 |
[Java] 백준 풀기 1699 - 제곱수의 합 (0) | 2024.01.30 |
[Java] 백준 풀기 2407 - 조합 (0) | 2024.01.27 |
[Java] 백준 풀기 6378 - 디지털 루트 (2) | 2024.01.26 |