Всем привет. Я вроде бы понимаю что такое рекурсия, но данную задачу решить не могу.

Я подсмотрел в интернете примерный код на такую задачу, но он не подходит.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");
double x, E = 0.001, summ = 0.0;
int n = 0;
cout << "Введите -1 < x < 1: ";
cin >> x;
double formula = (pow(x, 2 * n + 1)) / (2 * n + 1);
while (formula >= E)
{
if (n % 2 == 0)
{
summ += formula;
}
else
{
summ -= formula;
}
n += 1;
formula = (pow(x, 2 * n + 1)) / (2 * n + 1);
}
n += 1;
cout << "Число членов ряда: " << n << endl;
cout << "Сумма бесконечного ряда с точность 0.001: " << summ;
}
Надеюсь на скорейшую помощь, а самое главное - объяснение решения данной задачи:)