fabs(n)>2^31-1时,x除1.0和-1.0外,其余数值输出结果均为零
纯小白。代码极度繁琐,求大佬指教
double myPow(double x, int n){
double jieguo=1.0,t=1.0;
int i;
if(n<21473647 && n>0)
for(i=1;i<=n;i++)
{
jieguo*=x;
}
else if(fabs(n)>=214783637 && fabs(x)!=1)
jieguo=0;
else if(fabs(x)==1 && n%2==0)//1.0和-1.0的偶次方
jieguo=1.0;
else if(x==-1 && n%2!=0 )
jieguo=-1.0;
else if(n<0)//负数次幂
{for(i=1;i<=-n;i++)
{
t*=x;
}
jieguo=1.0/t;
}
else
jieguo=1.0;
return jieguo;
}