Python :: Aufgabe #199 :: Lösung #5
5 Lösungen

#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ß!
"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ß!
#5

von Klaus (1960 Punkte)
- 31.01.2020 um 16:03 Uhr

# Kleiner als 38 kann die Lösung wegen der fest vorgegebenen Buchstaben nicht sein # Geprüft wird der Zahlenbereich zwischen 38 und 99 # Elemente zum Zusammensetzen der Zahlenbezeichnungen translate_dict = {1: 'ein', 2: 'zwei', 3: 'drei', 4: 'vier', 5: 'fünf', 6: 'sechs', 7: 'sieben', 8: 'acht', 9: 'neun', 30: 'dreißig', 40: 'vierzig', 50: 'fünfzig', 60: 'sechszig', 70: 'siebzig', 80: 'achtzig', 90: 'neunzig'} # Funktion zur Rückgabe der Zahlenbezeichnung def translate_number(number): if number % 10 == 0: return translate_dict[number] else: return f'{translate_dict[number%10]}und{translate_dict[number//10*10]}' # Dictionary für den Zahlenbereich zwischen 38 und 99 wird aufgebaut counter_dict = {} for index in range (38, 100): counter_dict[index] = translate_number(index) # Prüfung auf Basis des Dictionaries / Ausgabe korrekter Lösungen for element in counter_dict: if element == len(f'diesersatzhat{counter_dict[element]}buchstabensowieeinenpunkt'): print(f'Richtige Lösung bei "{counter_dict[element]}"')
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1