rekursive Funktion
Tibly
- javascript
Guten Morgen!
ich muss eine rekursive Funktion schreiben habe dass jedoch noch nie gemacht und suche dringend gute (leichtverständliche) Informationen. Habe bis jetzt leider nicht passendes Gefunden, deswegen bitte ich um Eure Hilfe!
mfg
Tibly
Hallo,
ich muss eine rekursive Funktion schreiben habe dass jedoch noch nie gemacht und suche dringend gute (leichtverständliche) Informationen. Habe bis jetzt leider nicht passendes Gefunden, deswegen bitte ich um Eure Hilfe!
Der Klassiker ist die Fakultaetsberechnung:
function Fakultaet(n)
{
if(n==0||n==1)return 1;
else return n*(Fakultaet(n-1));
}
alert(Fakultaet(5)); // 120
MfG, Thomas
Hi,
Der Klassiker ist die Fakultaetsberechnung:
function Fakultaet(n)
{
if(n==0||n==1)return 1;
da fehlt noch was, s.u.!
else return n*(Fakultaet(n-1));
}alert(Fakultaet(5)); // 120
Viel Spaß mit:
alert(Fakultaet(-1));
(frag mich jetzt aber nicht, was in diesem Fall zu geschehen hätte ...)
cu,
Andreas
Hallo,
Viel Spaß mit:
alert(Fakultaet(-1));(frag mich jetzt aber nicht, was in diesem Fall zu geschehen hätte ...)
Dann sollte man z. B. false zurueck geben. Ich wuerde aber bereits vorher abpruefen, ob die Zahl >=0 ist und die Funktion ansonsten gar nicht aufrufen.
MfG, Thomas
Dann sollte man z. B. false zurueck geben. Ich wuerde aber bereits vorher abpruefen, ob die Zahl >=0 ist und die Funktion ansonsten gar nicht aufrufen.
Ganzzahligkeit ist zudem ebenfalls zu fordern.
MfG, Thomas
Ganzzahligkeit ist zudem ebenfalls zu fordern.
Nicht, wenn man sich auf die Gammafunktion bezieht (dafür müsste man die Werte zwischen 0 und 1 aber in einer Tabelle nachschlagen)
Negativ wäre dann ebenfalls erlaubt (bis auf negativ-ganzzahlige Werte).
Gruß
rbs
Hallo,
Ganzzahligkeit ist zudem ebenfalls zu fordern.
Nicht, wenn man sich auf die Gammafunktion bezieht (dafür müsste man die Werte zwischen 0 und 1 aber in einer Tabelle nachschlagen)
Wieso nachschlagen, das Thema Gamma-Funktion kam hier auch schon vor: http://forum.de.selfhtml.org/archiv/2002/1/2942/#m16861.
MfG, Thomas
Hallo,
Viel Spaß mit:
alert(Fakultaet(-1));
function Fakultaet(n)
{
if(isNaN(n)||n<0||parseInt(n)!=n)return undefined;
else if(n==0||n==1)return 1;
else return n*(Fakultaet(n-1));
}
MfG, Thomas
Hallo Thomas,
ich muss eine rekursive Funktion schreiben habe dass jedoch noch nie gemacht und suche dringend gute (leichtverständliche) Informationen. Habe bis jetzt leider nicht passendes Gefunden, deswegen bitte ich um Eure Hilfe!
Der Klassiker ist die Fakultaetsberechnung:
function Fakultaet(n)
{
if(n==0||n==1)return 1;
else return n*(Fakultaet(n-1));
}alert(Fakultaet(5)); // 120
Deine Antwort ist für den Frager wertlos, da er offensichtlich nichts über Rekursion weiß. Du hast ihm einfach ein Beispiel (noch dazu ein aus pädagogischer und didaktischer Sicht ausgesprochen ungeeignetes) vorgesetzt ohne jegliche Erläuterung.
Jetzt hat er zwar eine Funktion, ist aber genauso klug wie vorher.
Um Rekursion programmieren zu können, muss man erst einmal verstehen, was Rekursion ist. Eine kurze Suche im Netz förderte diese Seite zu Tage, die sinnvolle Beispiele der Rekursion aufzeigt.
Beispiele, die helfen Rekursion ganzheitlich zu erfassen:
http://kunst.erzwiss.uni-hamburg.de/Meyer/Hypermed/rekurs.htm#3
Hat man das Prinzip erst verstanden, dann kann man sich auf die Programmier- und Mathematikebene begeben. Recht gut erscheinen mir diese Dokumente mit dem Problem umzugehen.
http://www.num.math.uni-goettingen.de/vlin.public/material/rekurs1.pdf
http://www.num.math.uni-goettingen.de/vlin.public/material/rekurs2.pdf
[http://www.num.math.uni-goettingen.de/vlin.public/material/rekurs3.pdf]
Viele Grüße
Antje