美文网首页
16.数值的整数次方

16.数值的整数次方

作者: HamletSunS | 来源:发表于2019-07-08 17:53 被阅读0次

思路:
注意考虑好各个限制条件:求a^m

  1. a=0时,m不能小于0
  2. a>0时,m>0,常规;m<0,倒数
  3. a<0时,同2
  4. 0的0次方的取值需要商讨一下

改进思路:
运用递归公式
a^n=a^{\frac{n}{2}}a^{\frac{n}{2}},n=even
a^n=a^{\frac{n-1}{2}}a^{\frac{n-1}{2}}a,n=odd
可以达到O(logn)的复杂度,当然要先对非法条件作初步判断。

代码:

class Solution {
public:
    double Power(double base, int exponent) {
        if(exponent==0)
            return 1;
        if(base==0)
            return 0;
        double ret=1.0;
        int n=abs(exponent);
        ret=Power(base,n/2);
        ret*=ret;
        if(n%2==1)
            ret*=base;
        if(exponent>0)
            return ret;
        else
            return 1.0/ret;
        
    }
};

相关文章

网友评论

      本文标题:16.数值的整数次方

      本文链接:https://www.haomeiwen.com/subject/fbmahctx.html