Python :: Aufgabe #144 :: Lösung #3
5 Lösungen

#144
Funktion über eine Natürliche Zahl
Anfänger - Python
von hollst
- 20.02.2017 um 09:02 Uhr
Man schreibe ein Funktion f(n) mit dem Definitionsbereich (n) und dem Wertebereich (f(n)) der natürlichen Zahlen.
Die Funktion f(n) sei wie folgt zu konstruieren:
1.) Schreibe die Zahlen 1 ... n in absteigender Reihenfolge nebeneinander: n, n - 1, n - 2 ... 5, 4, 3, 2, 1
2.) Wandle diese Zahlen in ihre binärer Darstellen ohne führende Nullen: n, n - 1, n -2 ... 101, 100, 11, 10, 1
3.) Entferne jetzt das Komma zwischen den Binärzahlen, die sich damit ergebende neue Binärzahl ist f(n).
Beispiel: f(6) => 6, 5, 4, 3, 2, 1 => 110, 101, 100, 11, 10, 1 => 11010110011101 = 13725 (dezimal).
Fragen: Welchen Wert hat f(99)?
Die Funktion f(n) sei wie folgt zu konstruieren:
1.) Schreibe die Zahlen 1 ... n in absteigender Reihenfolge nebeneinander: n, n - 1, n - 2 ... 5, 4, 3, 2, 1
2.) Wandle diese Zahlen in ihre binärer Darstellen ohne führende Nullen: n, n - 1, n -2 ... 101, 100, 11, 10, 1
3.) Entferne jetzt das Komma zwischen den Binärzahlen, die sich damit ergebende neue Binärzahl ist f(n).
Beispiel: f(6) => 6, 5, 4, 3, 2, 1 => 110, 101, 100, 11, 10, 1 => 11010110011101 = 13725 (dezimal).
Fragen: Welchen Wert hat f(99)?
#3

von Nachbar (2820 Punkte)
- 19.09.2017 um 19:02 Uhr

# -*- coding: utf-8 -*- # dezimal in binaer umwandeln def dezbin(dezzahl): rest = "" ergebnis = dezzahl while ergebnis != 0: rest = str(ergebnis % 2) + rest ergebnis = ergebnis / 2 return int(rest) # binaer in dezimal umwandeln def bindez(binzahl): dezzahl = 0 lbin = list(str(binzahl)) lbin.reverse() for i, j in enumerate(lbin): if j == "1": dezzahl = dezzahl + 2**i return "{:,}".format(dezzahl) #---------------------------------- n = input("Zahl n: " ) # Funktion n_zahlen = "" for i in range(n, 0, -1): n_zahlen = n_zahlen + str(dezbin(i)) # Ergebnis print "\nf(" + str(n) + "): " + str(bindez(n_zahlen))
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1