Konvertieren Sie Integer in Python in römische Zahlen
- Konvertieren Sie ganze Zahlen in Python in römische Zahlen
- Verwenden Sie Division, um ganze Zahlen in Python in römische Zahlen umzuwandeln
Römische Zahlen werden mit den folgenden sieben Symbolen geschrieben.
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
Diese Symbole werden verwendet, um Tausende von Zahlen darzustellen.
Um 20 in Roman zu schreiben, können Sie zwei X
verwenden, um XX
zu machen. Aber XXXX
ist nicht gleich 40.
Die römische Ziffer für 40 ist XL
.
Ähnlich:
Symbol Value
IV 4
IX 9
XL 40
XC 90
CD 400
CM 900
In diesem Tutorial lernen Sie, eine ganze Zahl in Python in eine römische Zahl umzuwandeln.
Konvertieren Sie ganze Zahlen in Python in römische Zahlen
Das Folgende ist eine Implementierung eines Python-Programms, das eine gegebene Ganzzahl in ihr römisches Zahlenäquivalent umwandelt.
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))
Ausgang:
Enter a number: 42
XLII
Im obigen Beispiel enthält roman_map
eine Liste mit entsprechenden Werten und Symbolen. res
ist ein leerer String.
Das while num > 0
führt die Schleife aus, wenn der Wert von num
größer als Null ist. In römischen Ziffern gibt es kein Symbol für Null.
Das for i, r in roman_map
durchläuft jedes (ganzzahlige, römische) Paar, bis es die erste Ziffer findet.
Für eine detaillierte Visualisierung des Codes führen Sie den Code hier aus.
Verwenden Sie Division, um ganze Zahlen in Python in römische Zahlen umzuwandeln
Im folgenden Beispiel wird die Divisionsmethode verwendet, um eine vom Benutzer eingegebene Ganzzahl in eine römische Zahl umzuwandeln.
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
Ausgang:
Enter a number: 42
XLII
Bei diesem Ansatz dividieren wir die eingegebene ganze Zahl durch 13 primäre ganze Zahlen in absteigender Reihenfolge. Die roman_map
ist ein Wörterbuch, das 13 Ganzzahlen enthält, deren römische Ziffern in Schlüssel:Wert
-Paaren äquivalent sind.
Das num
speichert die vom Benutzer eingegebene Ganzzahl. Die Liste order
speichert 13 Integer in absteigender Reihenfolge.
Die eingegebene Zahl wird solange durch alle Zahlen der order
-Liste dividiert, bis der Quotient nicht Null ist.
Wenn der Quotient nicht Null ist und es einen Rest gibt, wird er in einer Zahl
aktualisiert. Die Schleife läuft weiter und wir erhalten das römische Zahlenäquivalent.
Visualisieren Sie den obigen Code in diesem Link.
Jetzt sollten Sie wissen, wie Sie in Python eine Ganzzahl in ihr römisches Zahlenäquivalent umwandeln. Wir hoffen, dass Sie dieses Tutorial hilfreich finden.