###代码如下,请问这个递归哪里出问题了,问什么程序没有结果
//根据 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);
}