Ich wurde gebeten, den folgenden verschachtelten Root-Ausdruck nur mit Rekursion zu berechnen .
Ich habe den folgenden Code geschrieben, der funktioniert, aber sie erlaubten uns, nur eine Funktion und einen Eingang n
für diesen Zweck zu verwenden und nicht zwei, wie ich sie verwendet habe. Kann mir jemand helfen, diesen Code in eine Funktion umzuwandeln, die den Ausdruck berechnet? Ich kann keine Bibliothek außer Funktionen von verwenden <math.h>
.
Ausgabe für n = 10: 1.757932
double rec_sqrt_series(int n, int m) {
if (n <= 0)
return 0;
if (m > n)
return 0;
return sqrt(m + rec_sqrt_series(n, m + 1));
}
double helper(int n) {
return rec_sqrt_series(n, 1);
}
abort()
(von <stdlib.h>
) anrufen und nicht still 0 zurückgeben.
double nested_root(unsigned n) { double x = 0.0; if (n > 0) { x = nested_root(0); for (unsigned i = n; i > 0; i--) { x = sqrt(i + x); } } return x; }
helper
?