Python :: Aufgabe #20 :: Lösung #2
4 Lösungen
#20
Zahlen in Römischer Schreibweise
Anfänger - Python
von pocki
- 29.12.2012 um 19:40 Uhr
Schreibe eine Programm welches eine Ganzzahl einliest und diese anschließend in römischer Schreibweise wieder ausgibt und umgekehrt bei einer eingegebenen Zahl in römischer Schreibweise diese als normale Zahl wieder ausgibt:
Die Erkennung der Schreibweise sollte automatisch funktionieren.
Konsolenausgabe:
Geben Sie eine Zahl ein: 1234
entspricht: MCCXXXIV
Geben Sie eine Zahl ein: DXXXVII
entspricht: 537
Die Erkennung der Schreibweise sollte automatisch funktionieren.
#2
von ah3n0bar6us (660 Punkte)
- 17.07.2016 um 19:51 Uhr
#!/usr/bin/env python3
def history():
while True:
values = {'I': 1,'V': 5,'X': 10,'L': 50,'C': 100,'D': 500,'M': 1000}
string = input("Geben Sie eine Zahl ein: ")
stringLen = len(string)
counter = 0
for i in range(0,stringLen):
if string[i] in values:
counter += 1
if counter == stringLen:
decimal = 0
previous_value = 0
for i in string:
if i in values:
if values[i] > previous_value:
decimal -= previous_value
else:
decimal += previous_value
previous_value = values[i]
decimal += previous_value
print("Ergebnis: " + str(decimal))
else:
roman = ""
previous_value = ""
string = int(string)
while string > 0:
if string >= 1000:
string -= 1000
roman += "M"
if string < 1000 and string >= 500:
string -= 500
roman += "D"
if string < 500 and string >= 100:
string -= 100
roman += "C"
if string < 100 and string >= 50:
string -= 50
roman += "L"
if string < 50 and string >= 10:
string -= 10
roman += "X"
if string < 10 and string >= 5:
string -= 5
roman += "V"
if string < 5 and string >= 1:
string -= 1
roman += "I"
print("Ergebnis: " + str(roman))
def main():
history()
if __name__ == "__main__":
main()Sollte so stimmen?
LG, Ah3
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
