9177. 公式计算1:求π

9177. 公式计算1:求π

【问题描述】

有公式 π/2 = (2/1 x 2/3) x (4/3 x 4/5) x (6/5 x 6/7) x … x [2n/(2n-1)x2n/(2n+1)],利用该公式可以计算π的近似值。给定一个精度值e,求前后两次迭代之差的绝对值小于e时相应的最小迭代次数n(n大于等于2)。提示:请用double类型的变量进行计算。

【输入形式】

从标准输入中读入e(e>=0.000001)的值。

【输出形式】

在标准输出上输出迭代次数n。

【输入样例】

0.01

【输出样例】

9

【样例说明】

输入的精度为0.01。利用上述计算公式求π值,当n为7时,求得的π的近似值为3.038674;当n为8时,求得的π的近似值为3.05059,两者之差的绝对值为0.011916,大于要求的精度0.01,所以应继续迭代计算。当n为9时,求得的π的近似值为3.060035,与n为8求得的近似值之差的绝对值是0.009445,小于要求的精度,所以满足精度要求的最小迭代次数为9。

【评分标准】

该题要求输出满足精度要求的最小迭代次数,共有5个测试点。

 

 

#include<stdio.h>
double fun(int n)
{
int i;
double num;
num=1;
for(i=1;i<=n;i++)
{
num=num*(2*i*1.0/(2*i-1)*2*i*1.0/(2*i+1));
}
return 2*num;
}
int main()
{
double m,e,u;
int n,count=0,i;
scanf("%lf",&e);
for(i=1;i<10000;i++)
{
u=fun(i+1)-fun(i);
//printf("%lf ",u);

if(u<e) break;

}
printf("%d",i+1);
return 0;
}

posted @ 2020-10-24 22:52  瑜瑜子  阅读(1059)  评论(0)    收藏  举报