Implement pow(x, n).
一个数的32次方,只要知道16次方再求平方即可,依次类推,只要五次乘法:
先求平方,再求4次方,8次方,16次方,32次方。奇数则乘以x。
public class Solution {
public double myPow(double x, int n) {
if(n<0)
return 1/power(x,-n);
else
return power(x,n);
}
public static double power(double x,int n){
if(n==0)
return 1;
double v=power(x,n/2);
if((n&0x1)==0)
return v*v;
else
return v*v*x;
}
}