Ошибка вычисления программного кода, почему так и как исправить?

Я новичок в c++, довольно сложно дается понятие принципов, сколько не пытался, не получается получить 2.121 после s(1.5,3). Условие нельзя менять и порядок ввода. Пробовал изначально с double s(double n, double x), но при тесте 1.5 3 ошибка сегментов. вот само задание

#include <iostream>
#include <cmath>

using namespace std;

double s(int n, double x) {
    if (n == 0) {
        return sqrt(x+1);
    }
    else {
        return sqrt(x+n*floor(s(n-1,x)));
    }
}


int main () {
    setlocale(LC_ALL, "RU");    
    double n, x;
   
    cout << "Ввведите пару чисел точки" << endl;
    cin >> n >> x;
    cout << s(n, x) << endl;

}

вот результат


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