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