Python :: Aufgabe #80

3 Lösungen Lösungen öffentlich

Jahreszahlenkonverter für römische Schreibweise

Anfänger - Python von BlackBird321 - 04.06.2015 um 22:36 Uhr
Bitte schreibe ein Programm, welches eine einzugebende Jahreszahl in eine römische Schreibweise umwandelt.

Beispiel:

1995 = MCMXCV
2015 = MMXV

Lösungen:

vote_ok
von jigga (4260 Punkte) - 06.06.2015 um 22:11 Uhr
Quellcode ausblenden Python-Code
jahr = int(input("Jahr: "))
jahr_ausgabe = jahr
ausgabe = ''

while jahr != 0:

	while jahr >= 1000:
		ausgabe += 'M'
		jahr -= 1000
	
	while jahr >= 500:
	
		if jahr >= 900:
			ausgabe += 'CM'
			jahr -= 900
		else:
			ausgabe += 'D'
			jahr -= 500
	
	while jahr >= 100:
	
		if jahr >= 400:
			ausgabe += 'CD'
			jahr -= 400
		else:
			ausgabe += 'C'
			jahr -= 100
	
	while jahr >= 50:
	
		if jahr >= 90:
			ausgabe += 'XC'
			jahr -= 90
		else:
			ausgabe += 'L'
			jahr -= 50
	
	while jahr >= 10:
	
		if jahr >= 40:
			ausgabe += 'XL'
			jahr -= 40
		else:
			ausgabe += 'X'
			jahr -= 10
	
	while jahr >= 4:
	
		if jahr >= 9:
			ausgabe += 'IX'
			jahr -= 9
		elif jahr >= 5 and jahr <=8:
			ausgabe += 'V'
			jahr -= 5
		else:
			ausgabe += 'IV'
			jahr -= 4
	
	while jahr > 0:
		ausgabe += 'I'
		jahr -= 1

print(jahr_ausgabe,"=",ausgabe)
vote_ok
von saylin (130 Punkte) - 06.11.2015 um 01:09 Uhr
Quellcode ausblenden Python-Code
Römische_zahlen = [["I","IV","V","IX"],["X","XL","L","XC"],["C","CD","D","CM"],["M"]]
run = True 
while run :
     a = input("Bitte Jahres Zahl eingeben: ")
     zahl = [] 
     counter = -1
     for i in a[::-1] :
             counter += 1      
             if int (i) < 4  :              
                 zahl.append(Römische_zahlen[counter][0] * int(i))
             if int(i) == 4 :
                  zahl.append(Römische_zahlen[counter][1])
             if int(i) == 5 :
                  zahl.append(Römische_zahlen[counter][2])
             if int(i) > 5 and  int(i) < 9:
                   zahl.append(Römische_zahlen[counter][2]+(int(i)-5)* Römische_zahlen[counter][0])                                   
             if int(i) == 9 :
                  zahl.append(Römische_zahlen[counter][3])                  
     ausgabe = "Auf Römisch: "         
     for n in zahl [::-1] :
            ausgabe += n            
     print (ausgabe)          
     ende = input ("weiter j/n?")
     if ende == "n" :
          print("ENDE") 
          run = False    
vote_ok
von Nachbar (2820 Punkte) - 27.08.2016 um 10:46 Uhr
Quellcode ausblenden Python-Code
# -*- coding: utf-8 -*-

zahlen = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
zahlzeichen = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", \
"IV", "I"]

arabisch = input("Jahreszahl Arabisch: ")
roemisch = ""

for i in zahlen:
    while arabisch >= i:
        roemisch = roemisch + zahlzeichen[zahlen.index(i)]
        arabisch = arabisch - i
  
print "\nJahreszahl Roemisch: " + roemisch