白駿解題-転換陣法2745回
3059 ワード
📜 理解问题
B進数Nが与えられる.この数を10進数に変更して、出力のプログラムを書いてください.
10進数を超える進数には、数字では表せない桁数があります.この場合、大文字を使用します.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
💡 問題の再定義
2進数Nを10進数に出力する
▼▼▼計画作成
各ビット数にBのビット数インデックスの乗数を乗せればよい.
例)
バイナリ:011->1 x 2^0+1 x 2^1+0 x 2^2
5進法:324->4個x 5^0+2個x 5^1+3個x 5^2
💻 計画の実行
if __name__ == '__main__':
N, B = input().split()
result = 0
B = int(B)
L = len(N)
for i, n in enumerate(N):
result += B ** (L - i - 1) * (ord(n) - 55) if n.isalpha() else B ** (L - i - 1) * int(n)
print(result)
🤔 振り返る
試験が終わった後、また1日100回から、最初は簡単な問題を選びました.
陣法の概念を正しく理解すれば、問題を解決することができる.
Reference
この問題について(白駿解題-転換陣法2745回), 我々は、より多くの情報をここで見つけました https://velog.io/@delicate1290/백준-문제-풀이-로프-2217번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol