Python :: Aufgabe #199 :: Lösung #4

5 Lösungen Lösungen öffentlich
#199

Teufelskreis einer selbstbezüglichen Aussage

Anfänger - Python von hollst - 17.12.2018 um 18:46 Uhr
Die folgende Aussage sei gegeben als String:

"Dieser Satz hat vierzig Buchstaben sowie einen Punkt."


Die Aussage ist natürlich falsch, denn der Satz hat tatsächlich fünfundvierzig Buchstaben.

Ersetzen wir nun in der Aussage das Wort "vierzig" durch "fünfundvierzig" bleibt die Aussage aber trotzdem falsch,

denn der neue Satz hat zweiundfünfzig Buchstaben. Schöner Teufelskreis, oder?


Schreibe ein Programm mit dem überprüft wird, ob es überhaupt eine (ausgeschriebene) Zahl gibt, die oben zu einer wahren Aussage führt.

Viel Spaß!

#4
vote_ok
von fmartin (20 Punkte) - 03.10.2019 um 14:38 Uhr
Quellcode ausblenden Python-Code
#!/usr/bin/python

textAnfang = 'Dieser Satz hat'
textEnde = 'Buchstaben sowie einen Punkt.' 
gefundeneSaetze = []

def zahl2wort(zahl):
    wort = ''
    zehnerWort = {1:'zehn', 2:'zwanzig', 3:'dreißig', 4:'vierzig',  5:'fünfzig', 
                                6:'sechzig', 7:'siebzig', 8:'achtzig', 9:'neunzig'}
    einserWort = {0:'', 1:'ein', 2:'zwei', 3:'drei', 4:'vier', 5:'fünf', 6:'sechs', 7:'sieben', 8:'acht', 9:'neun'}
    zehnerZahl,  einerZahl = divmod(zahl,  10)
    if zehnerZahl == 1:
        return einserWort[einerZahl]+zehnerWort[zehnerZahl]
    else:
        if einerZahl == 0:
            return zehnerWort[zehnerZahl]
        else:
            return einserWort[einerZahl]+'und'+zehnerWort[zehnerZahl]
    return wort

for i in range(13, 100):
    gesamtText = textAnfang+' '+zahl2wort(i)+' '+textEnde
    if len(gesamtText) - 7 == i: # 7 Leerzeichen !!
        gefundeneSaetze.append(gesamtText)
        
for satz in gefundeneSaetze:
    print(satz)

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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