Rekursion. Hilfe!

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
Erebos
User
Beiträge: 4
Registriert: Freitag 10. Februar 2006, 17:30

Ich weiß jetzt nicht ob es hier reinpasst, aber ich brauch das jetzt dringend bzw. muss es dringend können, da ich im programmieren nicht sonderlich begabt bin...
Also, ich muss die Summe aller ungeraden Zahlen rekursiv berechnen, mit einer funktions names z.b. rekursiv(n), wobei n noch zu der summe gehören könnte.
Ist für euch sicherlich kein ding, nur ich bin hilflos :(
helmut
User
Beiträge: 57
Registriert: Mittwoch 2. November 2005, 07:45
Wohnort: Dormagen

Hallo,

dann zeig doch mal den Code, den Du bisher erstellt hast.

Helmut
Erebos
User
Beiträge: 4
Registriert: Freitag 10. Februar 2006, 17:30

Code: Alles auswählen

def sumr(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    elif n%2!= 0:
        return n + sumr(n-1)
    else:
        sumr(n-1)
Iterativ ist es ja kein problem, habs so gemacht:

Code: Alles auswählen

def sum(n):
    z=0
    for i in range(n+1):
        if i%2!=0:
            z=z+i
    print z
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Erebos hat geschrieben:aller ungeraden Zahlen
Hi Erebos!

Ob eine Zahl ungerade ist, findest du so heraus:

Code: Alles auswählen

if zahl % 2:
    print "Ungerade"
else:
    print "Gerade"
Das mit der Summe hatten wir schon mal hier im Forum. Einfach danach suchen.

mfg
Gerold
:-)

Edit: Ich sehe gerade, dass du das schon weißt. :-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Erebos
User
Beiträge: 4
Registriert: Freitag 10. Februar 2006, 17:30

Wie ich es heraus finde weiß ich auch, hab auch leider nichts mit der Such-funktion gefunden... also bin immernoch nicht weiter...
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Erebos hat geschrieben:

Code: Alles auswählen

    else:
        sumr(n-1)
Das ruft sumr(n-1) auf und schmeisst das Ergebnis weg...

Du hast da das return vergessen.
Erebos
User
Beiträge: 4
Registriert: Freitag 10. Februar 2006, 17:30

Hey super, vielen Dank :)
Antworten