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진수가 되고 그 값을 변수에 더해가면 된다.
'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 |