Реализовать функцию вычисления с использованием циклов

Необходимо реализовать функцию с использованием цикла на С++.

Есть вот такой вариант исполнения (вход и выход сходятся), но исходя из темы задания, нужно использовать цикл.

Помогите преобразовать, пожалуйста, чтобы был задействован цикл.

#include <iostream>                              
#include <math.h>               
using namespace std;

double S(double N, int x)
{
    if (N < 0) return sqrt(x + 1);
    return sqrt(x + N * static_cast<int>(S(static_cast<int>(N - 1), x)));
}

int main() {
    cout << S(2, 2) << endl;
    cout << fixed;
    cout.precision(3);
    cout << S(1.5, 3) << endl;
}

Задание


Ответы (1 шт):

Автор решения: Ксения

Окончательный вариант стал таким.

#include <math.h>               
using namespace std;

double calculate(double x, unsigned n) {
    double res = sqrt(x + 1);
    for (unsigned i(1); i <= n; ++i)
        res = sqrt(x + i * floor(res));
    return res;
}

int main() {
    cout << fixed;
    cout.precision(3);
    cout << calculate(2, 2) << "\n";
    cout << calculate(1.5, 3) << "\n";
    cout << calculate(0, 0) << "\n";
    return 0;
}
→ Ссылка