The assignment was to create a program to estimate the factorial of a positive integer using Gosper's formula. I changed it to display intermediate values to find the error, and it looks like root_part is only using the "2n" and not the full "2n + 1/3", but I can't figure out why it's doing that. Reversing them had no effect either. The rest seems accurate given the wrong root_part value.
Any help would be greatly appreciated.
Code:
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int
main(void)
{
double n,
root_part,
root_solved,
n_factorial;
printf("Enter a positive integer> ");
scanf("%lf", &n);
root_partial = (1 / 3) + (2 * n);
printf("Variable root_part = %f \n", root_part);
root_solved = sqrt(root_part * PI);
printf("Variable root_solved = %f \n", root_solved);
n_factorial = (pow(n,n) * exp(-n)) * root_solved;
printf("%.0f! equals approximately %.5f \n", n, n_factorial);
return(0);
}