B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)
B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.
첫째 줄에 B진법 수 N을 10진법으로 출력한다.
n,b = input().split()
number = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
sum = 0
for i in range(len(n)-1,-1,-1):
sum += number.index(n[len(n)-(i+1)]) * (int(b)**i)
print(sum)
Python
복사
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
n,b = input().split()
number = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# 십진법을 원하는 진법으로 바꿔주려면 몫이 0이될때까지 계속해서 나눈 나머지를 역순으로 나열하면 된다.
rm = []
n = int(n)
b = int(b)
while(True):
rm.append(n % b)
n = n // b
if n == 0: break
result = ''
for i in rm[::-1]:
result += number[i]
print(result)
Python
복사
거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램을 작성하시오. 거스름돈은 항상 $5.00 이하이고, 손님이 받는 동전의 개수를 최소로 하려고 한다.
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 거스름돈 C를 나타내는 정수 하나로 이루어져 있다. C의 단위는 센트이다. (1달러 = 100센트) (1<=C<=500)
각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다.
quarter = 0.25
dime = 0.10
nickel = 0.05
penny = 0.01
n = int(input())
for i in range(n):
list = []
dollar = int(input()) / 100
list.append(dollar // quarter)
list.append(round((dollar % quarter),2) // dime)
list.append(round(((dollar % quarter) % dime),2) // nickel)
list.append(round((((dollar % quarter) % dime) % nickel),2) // penny)
for i in list:
print(int(i), end=' ')
print()
Python
복사
print((2**(int(input()))+1)**2)
Python
복사
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
n = int(input())
start_num = 1 # 벌집의 개수, 1개부터 시작
cnt = 1
while start_num < n: # 다음의 조건을 만족할때까지만 반복
start_num += 6 * cnt
cnt += 1
print(cnt)
Python
복사
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
첫째 줄에 분수를 출력한다.
Python
복사