Python :: Aufgabe #20 :: Lösung #2

4 Lösungen Lösungen öffentlich
#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:

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
vote_ok
von ah3n0bar6us (660 Punkte) - 17.07.2016 um 19:51 Uhr
Quellcode ausblenden Python-Code
#!/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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2096231

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.