/*请编写一个函数fun,它的功能是:根据以下公式求X的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):
X/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+...+1×2×3×...×n/3×5×7×(2n+1)
程序运行后,如果输入精度0.0005,则程序输出为3.14...。 */
#include <stdio.h>
double fun(double precision)
{
double X = 0;
double term = 1;
double factorial = 1;
double denominator = 1;
int n = 1;
while (term > precision)
{
factorial *= n;
denominator *= (2 * n + 1);
term = factorial / denominator;
X += term;
n++;
}
X=(X+1)*2;
return X;
}
int main(void)
{
double precision,num;
printf("please input precision\n");
scanf("%lf",&precision);
num=fun(precision);
printf("%lf\n",num);
}
标签:...,term,程序运行,double,precision,fun,0.0005,精度
From: https://www.cnblogs.com/yesiming/p/18259684