#include <stdio.h>
#include <math.h>
float rec_call(int, int);
int fact(int);
int main() {
int n, x;
float sum = 0;
printf("\nEnter Value of X: ");
scanf("%d", &x);
printf("\nEnter number of iterations n: ");
scanf("%d", &n);
sum = rec_call(x, n);
printf("Sum = %f\n", sum);
return 0;
}
float rec_call(int x, int n) {
static float sum;
if (n == 0) {
return sum;
}
if (n % 2 == 0) {
sum -= (pow(x, (2 * n) - 1) * 1.0) / fact((2 * n) - 1);
} else {
sum += (pow(x, (2 * n) - 1) * 1.0) / fact((2 * n) - 1);
}
return rec_call(x, n - 1);
}
int fact(int n) {
if (n == 0 || n == 1) {
return 1;
}
return n * fact(n - 1);
}