大佬们看看我这个计算Π的近似值为啥没有输出,好像是死循环了但是不知道问题出现在哪儿!

#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是永远跳不出来的