본문 바로가기
TIL - 프로그래밍/Python 알고리즘

[230228] n진법 구하기(with divmod) - Python

by chaemj97 2023. 2. 28.
728x90
  • divmod(a,b)
    • 튜플 형태로 return
    • a를 b로 나눈 몫 / 나머지
      • (몫, 나머지)
  • n진법 구하기 (2 <= n <= 16)
# i를 n진법으로 변환하기
def change(n,i):
	# 효율성을 위해 
    box = {2:'b',8:'o',16:'x'}
    if n in box:
        return format(i,box[n]).upper()
    
    if i == 0:
        return '0'
    
    result = ''
    nn = '0123456789ABCDEF'
    while i > 0:
        # i를 n으로 나눈 몫 : a
        # i를 n으로 나눈 나머지 : b
        a,b = divmod(i,n)
        i = a
        result += nn[b]
    return result[::-1]
728x90
반응형

댓글