[python]変換バー準1105進数2
1442 ワード
BOJ 1105変換アレイ2
だから最後の席から残りを計算します.
ベースで割るシェアをベースで割るので、ベースの平方数を求めなくてもいいです.
質問する
コード#コード#
n, base = list(map(int, input().split()))
digit = 0
num_dic = {
10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F', 16: 'G', 17: 'H', 18: 'I', 19: 'J',
20: 'K', 21: 'L', 22: 'M', 23: 'N', 24: 'O', 25: 'P', 26: 'Q', 27: 'R', 28: 'S', 29: 'T',
30: 'U', 31: 'V', 32: 'W', 33: 'X', 34: 'Y', 35: 'Z'
}
while base**digit <= n:
digit += 1
m = n
for i in range(1, digit+1):
q, m = divmod(m, base**(digit-i))
if q >= 10:
print(num_dic[q], end='')
else:
print(q, end='')
前の位置から探すべきだと思いますので、whileゲートで数桁探して、一番前の位置から最後の位置まで残りを探しました.コードの変更
n, base = list(map(int, input().split()))
result = ''
while n > 0:
if n % base >= 10:
result += chr(n % base + ord('A') - 10)
else:
result += str(n % base)
n //= base
print(result[::-1])
ただし、前の方からでなくても、最後の方から探して逆順に出力することができます.だから最後の席から残りを計算します.
ベースで割るシェアをベースで割るので、ベースの平方数を求めなくてもいいです.
Reference
この問題について([python]変換バー準1105進数2), 我々は、より多くの情報をここで見つけました https://velog.io/@raaang/Python-백준-1105-진법-변환-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol