C++利用公式pi⼀4=1-1⼀3+1⼀5-1⼀7+、、、、、、求pi的近似值,直到最后一位的绝对值小于10的—8次方

2024-11-15 12:21:43
推荐回答(2个)
回答1:

刚写的,测试过了
==========================
#include
#include

int main()
{
int i = 1; //分母,每次循环+2
int flag = 1; //符号,每次循环变号
double tmp; //存储每次的那一位,tmp = 1.0/i
double sum = 0.0; //存储和,循环结束后 sum = PI/4
do
{
tmp = 1.0/i; //计算每一位
sum = sum + flag * tmp; //求和得到pi/4

i = i + 2; //分母+2
flag = -flag; //作为符号,迭代一次后变号
}
while(tmp>0.00000001); //判断最后一位绝对值,以决定是否退出循环

std::cout.precision(8);//设置输出小数位数 8位
std::cout << "pi = " << sum * 4 << std::endl;
return 0;
}

=======运行结果========
pi = 3.1415927

回答2:

这个程序就可以了,i<1000000后面的这个数字可以你自己改的,改得越大就越接近,不过运行时间会增加
#include
void main()
{
double pi=0.0,i=1.0,j=1.0;
for(;i<1000000;i+=2,j=-j)
pi+=1/(i*j);
pi=pi*4;
printf("pi=%lf",pi);
}