WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   rekursive funktion in c (http://www.wcm.at/forum/showthread.php?t=159879)

xandl33 27.02.2005 11:11

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 !!!!!! :heul: :heul:

T.dot 27.02.2005 11:30

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]

xandl33 27.02.2005 13:09

thx

Who-T 02.03.2005 03:30

wenns ein bisschen kryptischer sein darf :)

Code:


float recursive(int max)
{
    return ((max > 1) ? recursive (max - 1) + 1.0/max : 1.0);
}


xandl33 02.03.2005 21:58

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 :confused: :confused: , sagen dir die Türme von Hanoi was ?

Who-T 03.03.2005 00:02

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"

xandl33 06.03.2005 10:03

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 06.03.2005 10:03

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:31 Uhr.

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