题目
Pow(x, n),即求x的n次方。
思路
此题是一个常规题,比较简单。利用简单的递归即可实现。
实现代码如下:
double myPow(double x, int n) {
int symbol=1;//用来标识n是不是为正数
if(n==0){
return 1;
}
// if(n==1){
// return x;
// }
if(n<0){//保证n为正数
n=-n;
symbol=-1;
}
if(n%2==0){
return symbol==1?myPow(x*x,n/2):(1/(myPow(x*x,n/2)));
}
else {
return symbol==1?(x*myPow(x*x,n/2)):(1/(x*myPow(x*x,n/2)));
}
}
尽管这个题很简单,但是还是遇到的一点问题:没有考虑到的测试用例,n=0的情况。因此报如下错误。
AC结果如下: