Algorithm/SW Expert Academy

[Python] 5186. 이진수2

느낌표 공장장 2021. 9. 30. 17:41
tc = int(input())
for idx in range(1, tc+1):
n = float(input())
cnt = 0 # 자리 수 count
binary = '' # 2진수 저장
while n > 0:
temp = n * 2
binary += str(temp)[0] # 정수부분 저장
n = temp - int(temp) # 소수점 이하 저장
cnt += 1
if cnt > 12: # 13자리 이상이면 중단
break
if cnt > 12: # 13자리 이상이면 overflow 출력
print('#{} {}'.format(idx, 'overflow'))
else:
print('#{} {}'.format(idx, binary))

✔︎ 소수점이 0이 될 때까지 2를 곱한다. 그렇게 2를 곱했을 때 정수 부분이 2진수가 되고 그 값을 변수에 더해가면 된다. 

참고 사이트 : https://coding-factory.tistory.com/652

'Algorithm > SW Expert Academy' 카테고리의 다른 글

[Python] 10726. 이진수 표현  (0) 2021.09.30
[Python] 1242. 암호 코드 스캔  (0) 2021.09.30
[Python] 5185. 이진수  (0) 2021.09.30
[Python] 1240. 단순 2진 암호코드  (0) 2021.09.29
[Python] 5178. 노드의 합  (0) 2021.09.24