解题思路:
分治 快速幂
Java中向下取整n/=2即可
需要结合下图理解,算法就是实现的该过程
class Solution {public double myPow(double x, int n) {if(x == 0.0f) return 0.0d;long b = n;double res = 1.0;//例如:2^-5=(1/2)^5if(b < 0) {x = 1 / x;b = -b;}//分奇偶讨论,为奇数时要多乘一次xwhile(b > 0) {//&与运算,例如:5&1=(101&001)=001=1if((b & 1) == 1) res *= x;//x=x^2x *= x;//指数地板除2(b/=2也可以)b >>= 1;}return res;}
}