Über Rekursiv Funktion in Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
erdisayar
User
Beiträge: 1
Registriert: Sonntag 18. Mai 2014, 14:59

Hallo Freunden / Freundinen

Ich entschuldiege im voraus.weil mein deutsch schlecht ist. Aber ich versuche etwas über mein Problem zu erklären.

Die Frage ist

In England benutzt man als Währung pound [£] und pence . Wir haben 8 Münzen für diese Frage. Also

1p 2p 5p 10p 20p 50p 100p [1£] 200p [2£]

Es ist möglich 2 pound in folgender Weise zu machen.

1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p

Wie viele möglichkeit gibt es um 2£ zu bekommen ?

Die Lösung

Code: Alles auswählen



def coin_sums(amount, coins):
    if amount==0:
        return 1
    elif len(coins)==0:
        return 0
    counts=[0]*len(coins)
    s=0
    while coins[0]*counts[0]<=amount:
        s+=coin_sums(amount-coins[0]*counts[0], coins[1:])
        counts[0]+=1
    return s

print("%d" % (coin_sums(200, [200,100,50,20,10,5,2,1])))



in diesem Befehl wurde Rekursiv Funktion verwendet . Aber ich konnte nicht verstehen , Wie Funktioniert diese Befehl ,

Wie kann ich selbst mit der Rekursiv Funktion programiieren .


Danke Schön
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

erdisayar hat geschrieben:in diesem Befehl wurde Rekursiv Funktion verwendet . Aber ich konnte nicht verstehen , Wie Funktioniert diese Befehl
Bei Rekursion ruft sich die Funktion (typischerweise mit anderen Parametern) noch einmal selbst auf.
Benutzeravatar
noisefloor
User
Beiträge: 3853
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

noch eine kleine Anmerkung: Rekursion wird in Python eher selten eingesetzt, da es nicht zu den "bevorzugten" Techniken gehört. Zumal die Rekursionstiefe per default auf 1000 eingeschränkt ist (was aber änderbar wäre).

Gruß, noisefloor
Antworten