pi/4=1-1/3+1/5-1/7.....我抄书上的程序结果得2.666667 帮我看看哪错了

来源:百度知道 编辑:UC知道 时间:2024/06/06 23:41:42
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;

int main(){
double sum=0,item=1;
for(int n=1;abs(item)>1e-6;++n){
item *=(-1.0)*(2*n-3)/(2*n-1);
sum += item;
}
cout<<"pi = "<<setiosflags(ios::fixed)<<setprecision(6)<<sum*4<<endl;
}

1、abs是整数的绝对值,它的参数是int,必须用fabs
2、不知道你为什么用item *=,按题意应该是item=
3、还有算式(-1.0)*(2*n-3)/(2*n-1); 根本不符合题意

这样就可以了

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;

int main(){
double sum=0,item=1;
for(int n=0;fabs(item)>1e-6;++n){
item =pow((-1.0),n)/(2*n+1);
sum += item;
}
cout<<"pi = "<<setiosflags(ios::fixed)<<setprecision(6)<<sum*4<<endl;
}