문제
-2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 2^0, 2^1, 2^2, 2^3이 표현 되지만 -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이 주어진다.
ex)
-13
출력
-2진법 수를 출력한다.
ex)
110111
코드
import sys
n=int(sys.stdin.readline())
num=''
if n==0:
print(0)
while(1):
if n==0:
break
elif n%(-2):
num='1'+num
n=n//(-2)+1
else:
num='0'+num
n=n//(-2)
print(num)
'Python > 백준 python' 카테고리의 다른 글
[파이썬/python] 백준 27889번 특별한 학교 이름 (0) | 2023.03.28 |
---|---|
[파이썬/python] 백준 2386번 도비의 영어 공부 (0) | 2023.03.26 |
[파이썬/python] 백준 27323번 직사각형 (0) | 2023.03.22 |
[파이썬/python] 백준 5789번 한다 안한다 (0) | 2023.03.20 |
[파이썬/python] 백준 4504번 배수 찾기 (0) | 2023.03.18 |