반응형
문제
-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, 11011, 11000, 11001 등이다.
10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오.
입력
첫 줄에 10진법으로 표현된 수 N이 주어진다.
출력
-2진법 수를 출력한다.
제한
- -2,000,000,000 ≤ N ≤ 2,000,000,000
풀이
import sys
input = sys.stdin.readline
n = int(input())
ans = ''
if n == 0:
print(0)
exit()
while n:
if n % (-2):
ans = '1' + ans
n = n//(-2) + 1
else:
ans = '0' + ans
n = n//(-2)
print(ans)
반응형
'Develop > 알고리즘' 카테고리의 다른 글
[백준/Python] Bronze I #1292 쉽게 푸는 문제 (0) | 2023.06.07 |
---|---|
[백준/Python] Bronze IV #25640 MBTI (0) | 2023.06.07 |
[백준/Python] Silver III #1935 후위 표기식2 (0) | 2023.06.07 |
[백준/Python] Bronze V #27959 초코바 (0) | 2023.06.06 |
[백준/Python] Bronze II #19532 수학은 비대면강의입니다 (0) | 2023.06.06 |
Comment