7-15 计算圆周率(15 分)

7-15 计算圆周率(15 分)

根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。

$$
\frac{\pi}{2}=1+\frac{1}{3}+\frac{2 !}{3 \times 5}+\frac{3 !}{3 \times 5 \times 7}+\cdots+\frac{n !}{3 \times 5 \times 7 \times \cdots \times(2 n+1)}+\cdots
$$

输入格式:

输入在一行中给出小于1的阈值。

输出格式:

在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。

输入样例:

1
0.01

输出样例:

1
3.132157
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
int main()
{
int i = 1;
double up=1.0f;
double down=1.0f;
double sum=1.0f;//右边式子第一项为1,在此直接处理
double n;
scanf("%lf",&n);//输入阈值
do{
up*=i;//分子
down*=(2.0*i+1.0);//分母(奇数相乘,从1*3开始)
i++;
sum+=(up/down);//每一项的和累加

}while(up/down>=n);//如果当前项小于阈值,退出循环
printf("%.6lf",2.0*sum);//最后不要忘记乘以2
return 0;
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×