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

5 Lösungen Lösungen öffentlich
#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)?

#4
vote_ok
von nitnat (670 Punkte) - 26.01.2018 um 23:52 Uhr
Quellcode ausblenden Python-Code
# Funktion über eine natürliche Zahl

def f(n):
    l=[]
    
    def a(n): 
        if n==0:
            return 
        else:
            b(n,len(l))
            a(n-1)
        return l

    def b(n,i):
        if n//2!=0:
            l.insert(i,n%2)            
            b(n//2,i)            
        else:
            l.insert(i,n%2)
        return l

    a(n)
    n=0
    c=0
    l=l[::-1]
    for i in l:
        c=c+(i*2**n)
        n+=1
    return c

Kommentare:

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

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

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.