【LeetCode练习题】Pow(x, n)

Pow(x, n)

Implement pow(xn).

计算x的n次方。

解题思路:

考虑到n的值会很大,而且可为正可为负可为0,所以掉渣天的方法就是用递归了。

对了,这题也在《剑指offer》里面有提到,是面试题11:数值的整数次方。可以书里给的递归代码在n为负数的情况下是错误的……他没有考虑到n为奇数时,n是正数和n是负数的情况是不一样的。

具体参考这哥们的答案。

这里我摘抄下来,方便以后查询。

double pow(double x, int n) {
    if (n == 0) return 1.0;
    // Compute x^{n/2} and store the result into a temporary
    // variable to avoid unnecessary computing
    double half = pow(x, n / 2);
    if (n % 2 == 0)
        return half * half;
    else if (n > 0)
        return half * half * x;
    else
        return half * half / x;
}
原文地址:https://www.cnblogs.com/4everlove/p/3667085.html