//快速幂算法(递归) class Solution { public double myPow(double x, int n) { if(x == 0){ return 0; } long N = n; if(N < 0){ x = 1 / x; N = -N; } return fastPow(x, N); } public double fastPow(double x, long N){ if (0 == N){ return 1.0; } double half = fastPow(x, N/2); if(N % 2 == 0){ return half * half; } else{ return half * half * x; } } }