码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-05-09 19:24:25      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:result   大小   double   复杂   div   base   style   pow   class   

给定一个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:数值的整数次方

标签:result   大小   double   复杂   div   base   style   pow   class   

原文地址:https://www.cnblogs.com/tendermelon/p/12859382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!