Python에서 정수를 로마 숫자로 변환
로마 숫자는 다음 7개의 기호를 사용하여 씁니다.
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
이 기호는 수천 개의 숫자를 나타내는 데 사용됩니다.
로마자로 20을 쓰려면 두 개의 X
를 사용하여 XX
를 만들 수 있습니다. 그러나 XXXX
는 40과 같지 않습니다.
40의 로마 숫자는 XL
입니다.
비슷하게:
Symbol Value
IV 4
IX 9
XL 40
XC 90
CD 400
CM 900
이 튜토리얼은 Python에서 정수를 로마 숫자로 변환하는 방법을 알려줍니다.
Python에서 정수를 로마 숫자로 변환
다음은 주어진 정수를 로마 숫자로 변환하는 파이썬 프로그램의 구현입니다.
roman_map = [
(1000, "M"),
(900, "CM"),
(500, "D"),
(400, "CD"),
(100, "C"),
(90, "XC"),
(50, "L"),
(40, "XL"),
(10, "X"),
(9, "IX"),
(5, "V"),
(4, "IV"),
(1, "I"),
]
def into_roman(num):
res = ""
while num > 0:
for i, r in roman_map:
while num >= i:
res += r
num -= i
return res
num = int(input("Enter a number: "))
print(into_roman(num))
출력:
Enter a number: 42
XLII
위의 예에서 roman_map
에는 해당 값과 기호가 있는 목록이 포함되어 있습니다. res
는 빈 문자열입니다.
while num > 0
은 num
값이 0보다 큰 경우 루프를 실행합니다. 로마 숫자에는 0을 나타내는 기호가 없습니다.
for i, r in roman_map
은 첫 번째 숫자를 찾을 때까지 각 (정수, 로마자) 쌍을 반복합니다.
코드를 자세히 시각화하려면 여기에서 코드를 실행하세요.
나눗셈을 사용하여 Python에서 정수를 로마 숫자로 변환
다음 예제에서는 나누기 방법을 사용하여 사용자가 입력한 정수를 로마 숫자로 변환합니다.
roman_map = {
1: "I",
4: "IV",
5: "V",
9: "IX",
10: "X",
40: "XL",
50: "L",
90: "XC",
100: "C",
400: "CD",
500: "D",
900: "CM",
1000: "M",
}
num = int(input("Enter a number: "))
# 13 integers in descending order
order = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
for i in order:
if num != 0:
quotient = num // i
# prints the roman numeral if the quotient is not zero
if quotient != 0:
for j in range(quotient):
print(roman_map[i], end="")
# update input number with a remainder
num = num % i
출력:
Enter a number: 42
XLII
이 접근법에서는 입력 정수를 내림차순으로 13개의 기본 정수로 나눕니다. roman_map
은 key:value
쌍에 상응하는 로마 숫자와 함께 13개의 정수를 포함하는 사전입니다.
num
은 사용자가 입력한 정수를 저장합니다. order
목록은 13개의 정수를 내림차순으로 저장합니다.
입력 숫자는 몫이 0이 될 때까지 order
목록의 모든 숫자로 나뉩니다.
몫이 0이 아니고 나머지가 있으면 num
으로 업데이트됩니다. 루프는 계속 실행되고 로마 숫자에 해당하는 값을 얻습니다.
이 링크에서 위의 코드를 시각화하십시오.
이제 Python에서 정수를 로마 숫자로 변환하는 방법을 알아야 합니다. 이 튜토리얼이 도움이 되었기를 바랍니다.