6081 : [기초-종합] 16진수 구구단 출력하기(py)
문제설명 |
16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운 영일이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다. A, B, C, D, E, F 중 하나가 입력될 때, 1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자. (단, A ~ F 까지만 입력된다.) |
입력값 |
16진수로 한 자리 수가 입력된다. 단, A ~ F 까지만 입력된다. |
출력값 |
입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다. 계산 결과도 16진수로 출력해야 한다. |
입력 예시 |
B |
출력 예시 |
B*1=B B*2=16 B*3=21 B*4=2C B*5=37 B*6=42 B*7=4D B*8=58 B*9=63 B*A=6E B*B=79 B*C=84 B*D=8F B*E=9A B*F=A5 |
정답 및 가능한 정답
a=input()
a=int(a,16)
for i in range(1,16):
print("%X*%X=%X" %(a,i,a*i))
n = int(input(), 16)
for i in range(1, 16) :
print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')
해설
16진수를 10진수로 바꾸는 방법
int(a, b)는 문자열 a가 b에 해당하는 진수일 때 숫자(10진수)로 바꿔줍니다.
int 함수를 이용해서 x= int("A", 16)
x는 10이 된다.
range() 범위 설정
16진수의 F는 10진수로 15이다. 범위를 range(1,16)으로 1부터 F까지로 설정
여러 개 변수 포메팅
print("%d %d" %(a, b)) **(a, b)처럼 괄호 안에 넣는다.
여러 개 변수 포메팅을
print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')처럼
3개의 변수들을 각각 포메팅 하고 sep=""로 간격 없이 출력할 수도 있다.
위의 조건들을 고려하여 문자를 입력받고, int 함수로 10진수로 바꾼 다음
for 함수를 이용해 range(1,16) 범위에서
10진수들을 %X 16진수 대문자로 포메팅 하여 출력할 수 있다.