【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;

}

 

 

你可能感兴趣的:(LeetCode)