[기초-종합] 16진수 구구단?
16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
영일(01)이는 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
풀이
hexadecimal = input()
if (hexadecimal == "A"):
hexadecimal_number = 10
elif (hexadecimal == "B"):
hexadecimal_number = 11
elif (hexadecimal == "C"):
hexadecimal_number = 12
elif (hexadecimal == "D"):
hexadecimal_number = 13
elif (hexadecimal == "E"):
hexadecimal_number = 14
elif (hexadecimal == "F"):
hexadecimal_number = 15
for i in range(1, 16):
number = (hexadecimal_number * i) // 16
if (number == 0):
number = ""
elif (number == 10):
number = "A"
elif (number == 11):
number = "B"
elif (number == 12):
number = "C"
elif (number == 13):
number = "D"
elif (number == 14):
number = "E"
elif (number == 15):
number = "F"
decimal = (hexadecimal_number * i) % 16
if (decimal == 10):
decimal = "A"
elif (decimal == 11):
decimal = "B"
elif (decimal == 12):
decimal = "C"
elif (decimal == 13):
decimal = "D"
elif (decimal == 14):
decimal = "E"
elif (decimal == 15):
decimal = "F"
if (i == 10):
i = "A"
elif (i == 11):
i = "B"
elif (i == 12):
i = "C"
elif (i == 13):
i = "D"
elif (i == 14):
i = "E"
elif (i == 15):
i = "F"
print(hexadecimal + "*" + str(i) + "=" + str(number) + str(decimal))
설명
잘하는 짓인지는 모르겠지만 일단 Code Up이 정답이라고는 해줬습니다...
python에 좋은 library가 있을 것 같지만 안 찾아보고 한번해봤네요..
16진수에 해당하는 문자를 받아서 숫자로 변환된 변수를 선언했습니다.
-> 변환된 숫자로 곱셈을 진행해야 하기 때문에 for문을 사용해줬습니다.
-> 곱셈의 결과를 출력을 위해서 몫은 number로 나머지는 decimal 변수로 선언해줬습니다.
-> 몫과 나머지도 출력시에 16진수에 맞게 출력해야하므로 if문을 활용했습니다.
코드블럭을 활용하여 게시물을 작성해봤습니다.
'Algorithms > Code Up 100제' 카테고리의 다른 글
Code Up 기초 100제 - 1084 (0) | 2020.01.13 |
---|---|
Code Up 기초 100제 - 1083 (0) | 2020.01.13 |
Code Up 기초 100제 - 1081 (0) | 2020.01.13 |
Code Up 기초 100제 - 1080 (0) | 2020.01.13 |
Code Up 기초 100제 - 1079 (0) | 2020.01.13 |