Finding Sum of ln(1+x) Using Recursive Function

Program


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

/* Function prototype */
float logfun(float x, int n);

/* Main Function */
int main()
{
 float x, result;
 int n;
 clrscr();
 printf("Enter value of x:\n");
 scanf("%f", &x);
 printf("Enter number of terms:\n");
 scanf("%d", &n);
 /* Function Call */
 result = logfun(x,n);
 printf("ln(1+%0.2f) = %0.4f", x, result);
 getch();
 return 0;
}

/* Function Definition */
float logfun(float x, int n)
{
 if(n< 0)
 {
  return 0;
 }
 else
 {
  return pow(-1, n) * pow(x, n+1)/(n+1) + logfun(x,n-1); /* Recursive function */
 }
}

Output of above program:

Enter value of x:
0.5 ↲
Enter number of terms:
10 ↲
ln(1+0.50) = 0.4055

Note: ↲ indicates ENTER is pressed.