12_求π的值
通过课程进入 题 号: 16 12_求π的值 语言要求: C++
求出π的值,根据给出公式π/2=1+1/3+1/32/5+1/32/53/7+…,从键盘输入要求满足的精度。(即前后两次求得的π相差小于输入精度)
采用float型,输出采用七位有效数字型如3.xxxxxx。
例如输入0.001,输出3.141106.*
观察上述公式特征,在循环中分别表示出本次循环和上次所得π的结果并作差。
C代码:
#include<stdio.h>
int main()
{
float pi=1.0,p=0,x;
float a=1,b=3,t=1.0;
int i=0;
scanf("%f",&x);//输入精度
do
{
p=pi;//将上次循环的结果赋给p
t*=a/b;//公式的累乘部分
pi+=t;//公式的累加部分
a++;
b+=2;
}while(2*(pi-p)>=x);//验证是否满足精度
printf("%.7f",2*pi);
return 0;
}
测试结果: