定义函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数f(n)计算n*(n+1)…(2n-1),函数返回值类型是double。
s=1+1/2∗3+1/3∗4∗5+......+1/n∗(n+1)∗...∗(2n−1)
输入格式:
输入在一行中给出一个正整数n。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位,请注意等号的左右各有一个空格。题目保证计算结果不超过双精度范围。
输入样例:
3
输出样例:
sum = 1.183333
观察最后一项由n*(n+1)····(2n-1),需要一个for循环让i=n起到2n-1
代码:
#include<stdio.h>
double fact(double z) //写一个分母的函数以便后面直接用fact(i)
{
double i,z=1;
for(i=n;i<=2*n-1;i++)
z*=i;
return z;
}
int main()
{
int i,n;
double sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=1.0/fact(i);
printf("sum = %.6f\n",sum);
return 0;
}