変換BOJ 2745アレイ


https://www.acmicpc.net/problem/2745
時間1秒、メモリ128 MB
input :
  • N B(2 ≤ B ≤ 36)
  • output :
  • B進数Nは10進数出力
  • である.
    条件:
  • A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
  • アルファベットを入力したらord(item)-55を実行します.
    変換パターン
    二進位の時.
    2^3 2^2 2^1 2^0
    8進法の場合
    8^3 8^2 8^1 8^0
    Bつまり、何進数であるかによって、平方の形で大きくなる.
    それではZZZZZを受け取った時
    36^4 36^3 36^2 36^1 36^0
    それを数字に乗せればいい
    import sys
    
    n, b = sys.stdin.readline().split()
    b = int(b)
    res = 0
    
    for idx, item in enumerate(n):
        try:
            if int(item):
                res += int(item) * b ** (len(n) - 1 - idx)
        except:
            res += (ord(item) - 55) * b ** (len(n) - 1 - idx)
    print(res)