#include <iostream>
#include <cmath>
using namespace std;
int main(){
double pi = 0.0,term = 1.0,sign = 1.0,sum = 0.0;
double limit = pow(10,-6);
while(fabs(term)>limit){
sum += term;
sign = -sign;
term = term + 2;
term = (sign/term);
}
pi = 4*term;
cout<<pi<<endl;
return 0;
}
整体逻辑设计应该是有问题的吧,但以当前的代码来看,while里面的判断跳出,实际是判断一个规律数何时不大于0.00001,规律为:x0=1,x1=1/(x0+2)....,可以用数学方法来证明,或者写个循环把这部分拉出来,看到这个数在5~6次递增后恒定在0.4左右了,所以while是永远跳不出来的