프로그래밍/파이썬 python

단계별로 풀어보기 8 - 일반 수학 1(2)

idealtrue 2023. 8. 8. 23:51
728x90

문제번호 11005번 진법 변환 2

 

첫째 줄에 N B가 주어진다. 첫째 줄에 10진법 수 N을 B진법으로 출력해야 한다.

 

답안 :

1  N, B = map(int,input().split())
2  quo, remain = N, 0
3  Bjin = []
4  while quo >= B :
5      quo, remain = quo // B, quo % B
6      Bjin.append(remain)
7  Bjin.append(quo)
8  for a in range(len(Bjin)) :
9      if 35 >= Bjin[a] >= 10 :
10         Bjin[a] = chr(Bjin[a]+55)
11 Bjin = Bjin[::-1]
12 for x in Bjin :
13     print(x, end='')
14 print()

 

comment :

# 입력을 받아주고, 몫과 나머지를 받기 위한 변수를 설정해준다.

# B진법으로 만드는 과정은 B보다 작아질 때까지 계속해서 나누어주면서 나머지를 반대로 적는 것이다. 그러므로 나눌 때마다 나머지를 리스트에 저장하면 된다. 마지막으로 B보다 작아진 경우에는 몫을 리스트에 넣어준다.

# 10 이상인 숫자들은 문자열로 변환해주는 반복문을 설정해주고, 거꾸로 되어있는 나머지에 대한 리스트를 뒤집어준 후 출력해준다.

728x90