Pow(x, n)

来源:互联网 发布:手机炒股软件排名 编辑:程序博客网 时间:2024/05/01 19:54

Pow(x, n)

Implement pow(xn).

解题技巧:

在求pow(x,n)时,可以求pow(x, n/2),这样算法的时间复杂度为o(logn)。此外,在求解的过程中,注意INT_MIN与INT_MAX的转化,

INT_MAX +1 = abs(INT_MIN) 

代码:

double myPow(double x, int n){    double res, half;    if(n == 0) return 1;    if(n < 0)    {        if(n == INT_MIN)            return 1.0 / (myPow(x,INT_MAX)*x);        else            return 1.0 / myPow(x, -n);    }    half = myPow(x,n/2);    if(n % 2 == 0)    {        res = half * half;    }    else    {        res = half * half * x;    }    return res;}


0 0
原创粉丝点击