Определенный интеграл, не работает рекурсия

Опытным путем было выявлено что в строке return -pow(sin(x), n-1)*cos(x)/n+(n-1)/n*Integrate(n-2, x); не добавляется слагаемое с повторным вызовом функции. Подскажите, пожалуйста в чем проблема.

#include<iostream>
#include <conio.h>
#include<math.h>

using namespace std;

double Integrate(int n, double x);

int main()
{

    setlocale (LC_ALL,"RUS");
    double b, a;
    int n1;
    cout<<"Введите а и b, где b больше a : ";
    cin>>a>>b;
    cout<<endl;
    cout<<"Введите степень n : ";
    cin>>n1;
    cout<<endl;

    double int_a, int_b;
    int_a = Integrate(n1, a);
    int_b = Integrate(n1, b);

cout<<"Значение определённого интеграла при а = "<<a<<" и b = "<<b<<" равно "<<int_b-int_a;
_getch();
    return 0;
}

double Integrate(int n, double x)
{

    if(n == 2) return x/2-sin(2*x)/4;
    if (n==1)  return -cos(x);
    return -pow(sin(x), n-1)*cos(x)/n+(n-1)/n*Integrate(n-2, x);


}


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