Реализовать функцию вычисления с использованием циклов
Необходимо реализовать функцию с использованием цикла на С++.
Есть вот такой вариант исполнения (вход и выход сходятся), но исходя из темы задания, нужно использовать цикл.
Помогите преобразовать, пожалуйста, чтобы был задействован цикл.
#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;
}
