WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 27.02.2005, 11:11   #1
xandl33
Elite
 
Registriert seit: 07.02.2003
Beiträge: 1.037


Standard rekursive funktion in c

hilfe ich steh grad bei einem beispiel an, es soll die folge 1+1/2+1/3+1/4+...1/n mit hilfe einer rekursiven funktion realisiert werden. ich hab leider nur keinen plan wie das gehen soll. kann mir da vielleicht jemand helfen ? bitte !!!!!!
xandl33 ist offline   Mit Zitat antworten
Alt 27.02.2005, 11:30   #2
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Zugegeben hab ich schon Ewigkeiten kein Standard C programmiert, aber in die Richtung sollts funktionieren:

Code:
float lala(int divider, int max)
{
	float zaehl;
	zaehl=(float)1/divider;
	if(divider<max)
	{
		zaehl+=lala(divider+1, max);
	}
	return  zaehl;
}
Aufruf is dann eben lala(1,n)

du übergibts einfach, durch was du dividieren willst (am Anfang halt 1) und bis wie weit.

Solange das max nicht erreicht wird, wird immer die funktion wieder aufgerufen und der wert zurückgegeben.

Ich hoff die Datentypen passen so

viel Spaß

[edit]auf zaehl=(float)1/divider; umgebessert[/edit]
T.dot ist offline   Mit Zitat antworten
Alt 27.02.2005, 13:09   #3
xandl33
Elite
 
Registriert seit: 07.02.2003
Beiträge: 1.037


Standard

thx
xandl33 ist offline   Mit Zitat antworten
Alt 02.03.2005, 03:30   #4
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

wenns ein bisschen kryptischer sein darf

Code:
float recursive(int max)
{
    return ((max > 1) ? recursive (max - 1) + 1.0/max : 1.0);
}
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten
Alt 02.03.2005, 21:58   #5
xandl33
Elite
 
Registriert seit: 07.02.2003
Beiträge: 1.037


Standard

Zitat:
Original geschrieben von Who-T
wenns ein bisschen kryptischer sein darf

Code:
float recursive(int max)
{
    return ((max > 1) ? recursive (max - 1) + 1.0/max : 1.0);
}
Dankefür die antwort, aber das ist mir zu kryptisch , sagen dir die Türme von Hanoi was ?
xandl33 ist offline   Mit Zitat antworten
Alt 03.03.2005, 00:02   #6
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

schaut nur kryptisch aus.
Code:
var = a ? b : c;
ist das gleiche wie
Code:
if (a)
  var = b
else
  var = c
wenn man das weiss, ist es relativ einfach zu lesen.


tuerme von hanoi? das "puzzle"
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten
Alt 06.03.2005, 10:03   #7
xandl33
Elite
 
Registriert seit: 07.02.2003
Beiträge: 1.037


Standard

ist das beispiel mit 3 stapeln und einer belibiegen anzahl von scheiben. wobei man mit einem rekursiven aufruf die scheiben von ein stapel auf den anderen legen soll. habs aber schon geschafft und halbwegs kapiert. die rekursionen sind am amfang etwas schwer zu kapieren.
xandl33 ist offline   Mit Zitat antworten
Alt 06.03.2005, 10:03   #8
xandl33
Elite
 
Registriert seit: 07.02.2003
Beiträge: 1.037


Standard

ist das beispiel mit 3 stapeln und einer belibiegen anzahl von scheiben. wobei man mit einem rekursiven aufruf die scheiben von ein stapel auf den anderen legen soll. habs aber schon geschafft und halbwegs kapiert. die rekursionen sind am amfang etwas schwer zu kapieren.
xandl33 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:00 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag