题目描述:有如下表达式 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.5492063492
源代码:
#include<stdio.h>
double he(double a);
int main(){
double sum,z;
scanf("%lf",&z);
sum=he(z);
printf("%.10lf",sum);//保留10位小数
}
double he (double a){
double s,n,q,q1;
q=1;s=1;q1=1;
for(n=1;n<=a+1;n++){
if(n>=2){
q=q*(n-1);//分子
q1=q1*(2*(n-1)+1);//分母
s=s+(q/q1);//和
}
else{
s=1;
}
}
return (s);//返回最终结果
}
运行结果: