剑指 Offer 16. 数值的整数次方
https://leetcode.cn/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/
通过递归减少运算次数
base case 比较多 要注意
double helper(double x, int n)
{
// base case
if (n == 0)
{
return 1.0;
}
if (n % 2 == 1)
{
return helper(x, n - 1) * x;
}
else
{
double temp = helper(x, n / 2);
return temp * temp;
}
}
double myPow(double x, int n) {
// base case
if (n == INT_MIN)
{
return helper(1.0 / x, -(n + 1)) / x;
}
if (n < 0)
{
return helper(1.0 / x, -n);
}
return helper(x, n);
}