본문 바로가기
<프로그래밍 언어>/[Python]

[Python] codeup 081 : [기초-종합] 16진수 구구단 출력하기(py)

by 자라나는 콩 2022. 3. 15.

문제

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 까지만 입력된다.)

 

풀이

이 문제를 풀기 위해서는 먼저 %를 이용한 포맷팅을 알아야 한다.

% 서식문자: % 뒤에 오는 자료형을 가리키는 문자

%s : 문자열
%c : 문자 1개
%d : +-부호 있는 정수
%u : +-부호 없는 정수
%f : 실수
%0.3f : 실수 (소수점 3자리까지 나오게)
%X : 16진수 대문자로
%x : 16진수 소문자로


%02X : 16진수 대문자로. 2자리 헥사에서, 앞의 빈 칸 있으면 0으로 채움우리가 뽑아내야 하는 것은 대문자 16진수 이므로 %X 를 사용한다.

그래서 밑에 자료 처럼 print('문자열 %자료형1 %자료형2' % (변수1, 변수2))를 사용해서 16진수의 구구단을 찍어낼 수 있다.

print( "%X*%X=%X" %(a, i , a*i))

1) 우린 숫자만 뽑아내기 때문에 문자열이 필요없다

2) 변수 a, i 가 차례로 %X 자리에 들어간다. 

 

위의 %를 이용한 포맷팅 예시

16진수를 10진수로  변수로 변환하기

a = int(input(), 16)

 

  num10 = int(num, 16) # 16진수 값을 10진수로 변환
print("16 진수 ==>", hex(num10)) # 10진수를 16진수로 변환

for 문으로 1 부터 16 까지의 16 진수랑 변수 곱하기 

for i in range(1, 16):

   

 위의 식들을 합치면

 a = int(input(), 16)

for i in range(1, 16):

    print( "%X*%X=%X" %(a, i , a*i))

댓글