티스토리 뷰

문제

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.

10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.

A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35

 

입출력 규칙

1. 입력

첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.

2. 출력
첫째 줄에 10진법 수 N을 B진법으로 출력한다.

 


문제 풀이

<내 풀이>

 

숫자부터 알파벳까지로 리스트를 만들어서 쉽게 수로 변환하게 한다.

  • 진법 계산을 통해서 나머지를 저장한 후, 마지막에 거꾸로 출력하면 된다.
num_list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

N, B = map(int, input().split())
ans = ''
while N:
    ans += num_list[N % B]
    N //= B
print(ans[::-1])

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함