任务描述
有如下表达式
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的值。
编程要求
输入
一个整数n
输出
输出表达式的值,保留小数点后10位的值。
测试说明
样例输入:
4
样例输出:
1.5238095238
代码如下
#include<stdio.h>
#include<math.h>
double fun(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 = sum + s;//
}
return sum;
}
int main()
{
int n;
scanf("%d", &n);
printf("%.10lf",fun(n));
return 0;
}