美文网首页
数值的整次方

数值的整次方

作者: 灰化肥发黑会挥发 | 来源:发表于2018-12-24 20:22 被阅读0次

    只提供思路,代码无法执行

    题目:实现函数double Power(double base,int exponent),求base的exponent次方,不适用库函数,同时不需要考虑大数问题。

    测试用例:exponent为负数
    exponent为正数,base为0.

    double Power(double base,int exponent){
          if(base==0.0 && exponent<0){
          return 0.0
          }
      int absExponent = int( exponent)  
      if(exponent<0)
        absExponent = 0 -  exponent;
        double result = PowerCaculation(base,absExponent );
    if(exponent<0)
        result = 1.0/result
    return result
    }
    double PowerCaculation(int base,int absExponent ){
             double result = 1.0;
               for(int i=0;i<absExponent;i++){
                result *=base;
            }
    return result
    }
    

    评价:考虑了异常情况,但是时间效率为O(exponent)

    解法2:将result *=base改为 result *=result, 时间效率为O(logn).

    double PowerCaculation(int base,int absExponent){
                double result = 1.0
                if  absExponent == 0
                    return 1
                if    abs Exponent ==1
                    return base;
               double result = PowerCaculation(base,absExponent>>1)
               result  *=result;
               if(result &1 ==1)
                  result *=base
               return result.
    }
    

    相关文章

      网友评论

          本文标题:数值的整次方

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