分析:
这题字面看是直接用一个for循环的事,但那样太浪费时间了,所以我们要找更好的办法,比如递归。
递归的话就是理解x的2n次方等于x的n次方乘x的n次方
递归:
class Solution {
public double myPow(double x, int n) {
if(n==0){
return 1;
}
if(n>0){
double d=myPow(x,n/2);
if(n%2==0){
return d*d;
}else{
return d*d*x;
}
}else{
double d=myPow(x,n/2);
if(n%2==0){
return d*d;
}else{
return d*d/x;
}
}
}
}