已知公式 π/4=1-1/3+1/5-1/7+…,编程求π的近似值(保留小数十位)
发布网友
发布时间:2022-10-10 00:39
我来回答
共5个回答
热心网友
时间:2024-11-29 11:21
double i,j=1,a,pi;
for(i=0;i<10;i++)
{
a+=j*(i/(1+2*i));
j=-j;
}
pi=4*a;
大概思路就是这样的,至于保留10位自己极想把
热心网友
时间:2024-11-29 11:21
main()
{int i,j,k;
double a,b,c,tt;
for(i=1,j=1;a-b<1/100000000000.0;i=i+2,b=a,j=-j)
{a=a+4.0*j/i;
}
tt=a;
a=a*100000000000;
k=a%10;
if(!(b<5)) tt=tt+0.0000000001
printf("\n tt=%.10f",tt);
}
热心网友
时间:2024-11-29 11:22
#include <stdio.h>
#include<stdlib.h>
#include <math.h>
int main(){
int k,d=1,f=1;
double pi=0;
scanf("%d",&k);
for(d=1;d<=2*k;d+=2){
pi=pi+f*1.0/(double)d;
f=-f;
}
printf("%.10f",4*pi);
return 0;
}
热心网友
时间:2024-11-29 11:22
double getPI()
{
int sign=1;
double PI=0;
int i=1;
while((1.0/i)>(1e-8))
{
PI+=sign*1.0/i;
sign*=-1;
i=i+2;
}
PI*=4;
return PI;
}
void main()
{
const double PI=getPI();
cout<<setprecision(10)<<PI<<endl;
} 输出结果为3.141592634
热心网友
时间:2024-11-29 11:23
#include<stdio.h>
void main()
{
double pi=0;
int i;
for(i=1;(double)(4.0/i)>=1e-10;i=i+2){
if(i%4==1)
pi+=4.0/i;
else
pi-=4.0/i;
}
printf("%.10lf\n",pi);
}