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 |