问题:

  • 求解X的N次方

算法思路:

  • 一般来说可以采用N-1次自乘的方式来进行运算,但是考虑到时间成本的问题,可以采用幂指数本身的性质来使用递归的方式来进行求解。
  • \[N为偶数:X^N=X^{N/2}*X^{N/2}\\ N为奇数:X^N=X^{N-1}*X \]

代码:

long int Pow(long int X,int N)
{
    if(N==0)
        return 1;
    if(N==1)
        return X;
    if(N%2==0)
        return Pow(X*X,N/2);
    else
        return Pow(X,N-1)*X;
}

时间复杂度为O(log N)

posted on 2020-03-06 16:08  Moriarty_cyh  阅读(935)  评论(0)    收藏  举报