@## 函数表达式的值
有如下表达式 s = 1 + 1 / 3 + (1 * 2) / (3 * 5) + (1 * 2 * 3) / (3 * 5 * 7) + .... + (1 * 2 * 3 * .... * n) / (3 * 5 * 7 * ... * (2 * n + 1))
。编写函数求给出的n所对应的表达式s的值。
输出表达式的值,保留小数点后10位的值。
#include <stdio.h>
#include <math.h>
double j(int n)
{
int i;
double sum = 0;
double a = 1;
double b = 1;
double s = 0;
for(i = 1;i <= n;i++) {
s = a / b; //1 1/3 2/3*5 2*3/3*5*7
a = a * i; //1 1*2 2*3
b = b * (i * 2 + 1); //1*3 3*5 3*5*7
sum += s;
}
return sum;
}
int main()
{
int n;
scanf_s("%d", &n);
printf("%.10lf", j(n));
return 0;
}