Implement pow(x, n).
double pow(double x, int n)
{
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (n == 0)
return 1.0;
if (n == 1)
return x;
bool isPos = true;
if (n < 0)
{
n = -n;
isPos = false;
}
double half = pow(x, n/2);
double mul = (n&1 ? x : 1.0) * half *half;
return isPos? mul: 1.0/mul;
}
本文介绍了一种快速计算x^n的方法,使用递归思想减少乘法次数。通过判断指数的奇偶性来决定是否进行额外的一次乘法操作,并且考虑了负指数的情况。
594

被折叠的 条评论
为什么被折叠?



