ブルーブリッジカップpython基礎練習10 10 10進数16進数


問題記述16進数は、プログラム設計時によく使用される整数の表現です.0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fの16シンボルで,それぞれ10進数の0から15を表す.16進数のカウント方法は満16進1であるため、10進数16は16進数で10であり、10進数の17は16進数で11であり、このように10進数の30は16進数で1 Eである.非負の整数を与え、16進数の形式で表す.
入力フォーマット入力には、変換する数を表す非負の整数aが含まれます.0<=a<=21748483647出力フォーマット出力この整数の16進表現
サンプル入力30サンプル出力1 E
方法1
  :    16  ,      10,        chr()          ,
    10,         。
while True:
    try:
        a = int(input())
        if a==0:
            print(0)

        else:
            s=[]
            while a:
                m = a%16
                a = int(a/16)
                if m>=10:
                    s.append(chr(m+55))
                else:
                    s.append(m)
            
            for i in range(len(s)):
                print(s[len(s)-i-1],end = '')            
    except:
        break

方法2
  :   16       9    ,                 。           。     ,    ,        。
A = []
num = int(input())

if num == 0:
    print(0)

while(num != 0):
    if  num%16<=9:
        A.append(num%16)
    else:
        if num%16==10:
            i = 'A'
        elif num % 16 == 11:
            i = 'B'
        elif num%16==12:
            i = 'C'
        elif num%16==13:
            i = 'D'
        elif num%16==14:
            i = 'E'
        elif num%16==15:
            i = 'F'
        A.append(i)
    num = num//16
A.reverse()
for j in  A:
    print(j,end='')