我的天,可以说是一个样例一个样例这样AC过来的,对于1,-1,这样的底要单独处理,对于n=0这样的底也要单独处理,同时要考虑次数超范围的情况。难怪AC成功率怎么低,也是道理的。
class Solution {
public:
double myPow(double x, int n) {
if(n==0||x==1.0)
return 1.0;
if(x==-1.0)
{
if(abs((long)n)%2==0)
return 1;
else
return -1;
}
else
{
long time=abs((long)n);
double num;
if(n<0)
num=1/x;
else
num=x;
double sum=1.0;
for(long i=0;i<time;i++)
{
sum*=num;
if(fabs(sum)<0.000001)
break;
}
return sum;
}
}
};