递归问题求各位大神解答

###代码如下,请问这个递归哪里出问题了,问什么程序没有结果

//根据 P/4=1-1/3+1/5-1/7.... 求P的近似值,要求精度为0.000001

#include"iostream"
using namespace std;

int Temp(int n){//求-1的n次方
    if(n==0)return 1;
    return -1*Temp(n-1);
}

double PI(){
    double sum=0;
    double temp=1.0;
    int count=0;//计数变量
    while(temp>=1e-6){
        count++;
        sum=sum+Temp(count-1)*temp;
        temp=1.0/(2*count+1);
    }
    return 4*sum;
}

int main(){
    cout

额,算-1的n次方哪还用到着递归。。。你这个每算一个就要递归到最下面,时间复杂度太高了,为啥不把上一次的循环里-1的n-1次存起来,每次乘-1.
最简单粗暴直接这样

`
int Temp(int n){//求-1的n次方
if(n%2==0)return 1;
return -1*Temp(n-1);
}