思路
分情况讨论
n大于零
return 1.0/pow(x,-n);
n小于零
return pow(x/n);
n为奇数
pow(x,n/2)*pow(x,n/2)*x
n 为偶数
pow(x,n/2)*pow(x,n/2)
#define _CRT_SECURE_NO_WARNINGS 1
class Solution {
public:double myPow(double x, int n) {if (n < 0)return 1.0 / pow(x, -(long long)n);//判断大于零还是小于零else return pow(x, n);};double pow(double x, int n){if (n == 0)return 1.0;double tmp = pow(x, n / 2); //快速幂:把n次方不断拆分return n % 2 == 0 ? tmp * tmp : tmp * tmp * x;};};