진법 변환
import sys
def main():
input = sys.stdin.readline
alphabet = "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
args = input().split()
number_b = args[0]
base = int(args[1])
result = 0
for digit in number_b:
result *= base
result += alphabet.index(digit)
print(result)
main()
import sys
def main():
input = sys.stdin.readline
number_b, base = input().split()
base = int(base)
print(int(number_b, base))
main()
$b$진법을 $10$진법으로 변환하기
$b$진법에서 $i$번째 자리수 $a_i$는 $a_i \times b^i$만큼 값을 가집니다. 따라서 $b$진법으로 나타낸 수 $\overline{a_n a_{n-1} \cdots a_1 a_0}_{(b)}$는 $a_n \times b^n + a_{n-1} \times b^{n-1} + \cdots + a_1 \times b^1 + a_0 \times b^0$이 됩니다. 첫 번째 코드는 이 식을 약간 변형하여 구현한 것입니다.
두 번째 코드는 Python의 내장 함수 int
가 임의의 진법을 $10$진법으로 변환하는 것을 이용했습니다.
댓글