刷题记录-剑指offer16:数值的整数次方

Posted tendermelon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题记录-剑指offer16:数值的整数次方相关的知识,希望对你有一定的参考价值。

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

使用递归时间复杂度降为o(logn)n为指数大小

对cyc大佬的补充,考虑了base为零的情况,否则当base==0,exp为复数是会出错

public class Solution {
    public double Power(double base, int exponent) {
        if(Double.toString(base).equals(Double.toString(0.0)))
            return 1.0;
        if(exponent == 1)
            return base;
        boolean isNegtive = false;
        if(exponent < 0){
            exponent = -exponent;
            isNegtive = true;
        }
        double result = Power(base*base, exponent/2);
        if(exponent % 2 !=0)
            result *= base;
        return isNegtive == false? result: 1.0/result;
  }
}

 

以上是关于刷题记录-剑指offer16:数值的整数次方的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer 刷题 数值的整数次方

剑指offer16数值的整数次方

附可运行代码剑指 Offer 16. 数值的整数次方

附可运行代码剑指 Offer 16. 数值的整数次方

数值的整数次方(剑指offer_16)

剑指Offer面试题16. 数值的整数次方