Rekursive C Funktion
-
Hallo Forum,
ich habe ein Problem mit einer Aufgabe.
Ich soll eine rekursive Funktion schreiben,
die
s= 1+x+x2/2+x3/3+...+x^n/n
berechne.
Bis jetzt habe ich das hier:
#include<stdio.h> double berechnung (double x,int n); void main (void){ int n; double x,s; n=5;x=2; /* printf("\nGib n ein: \n"); fflush(stdout); scanf("%i",&n); printf("\nGib x ein: \n"); fflush(stdout); scanf("%lf",&x); */ s=berechnung(x,n); printf("\ns=%lf",s); } double berechnung (double x,int n){ double s; if(n>=1){ s= (x*berechnung(x,n-1)); return s; } else return 1; }
aber das /n bekomme ich nicht hin.
Kann jemand helfen bzw. tipps geben.
Grüße
Lorenz
-
Und das plus anscheinend auch nicht.
So vielleicht (ungetestet):
double berechnung(double x,int n) { if (n==0) return 1; else return pow(x,n)/n + berechnung(x,n-1); }
Auch ist es sicherlich nicht der einzige Weg. Wenn man sich eine Hilfsfunktion definiert, die mehr Parameter zulaesst, dann kann man sich auch die pow-Funktion (math.h inkludieren und gegen libm.so linken) sparen.
void main (void)
Manche wuerden dir dafuer bestimt den Kopf abreissen.
-
So lert es unser Professor an der Hochschule
Danke ich probiere es nacher aus, vielleicht kommen noch rück fragen.
Grüße