Leetcode NO.50 Pow(x, n)

来源:互联网 发布:电脑语音同声翻译软件 编辑:程序博客网 时间:2024/06/18 15:01

本题要求如下:

Implement pow(xn).

就是实现C++自带的pow()函数,极其简单,就是用recursive的方法:pow(x,n) = pow(x*x, n/2)这样下来,当然有些情况(n的奇偶,正负),时间复杂度就是O(logN)。

代码如下:

class Solution {public:    double pow(double x, int n) {        if (n > 0) {        if (n % 2 == 0)        return pow(x*x, n/2);        else        return x * pow(x*x, n/2);        }        else if (n == 0)        return 1;        else {        if (n % 2 == 0)        return 1.0 / pow(x*x, -n/2);        else        return 1.0 / (x * pow(x*x, -(n+1)/2));        }    }};
唯一需要注意的就是在n = INT_MIN的时候。

0 0