Определенный интеграл, не работает рекурсия
Опытным путем было выявлено что в строке 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);
}